00001 #ifndef EDG_WORKLOAD_USERINTERFACE_CLIENT_SHADOW_H
00002 #define EDG_WORKLOAD_USERINTERFACE_CLIENT_SHADOW_H
00003
00004
00005
00006
00007
00008
00009 #include "edg/workload/userinterface/client/Listener.h"
00010 #include "edg/workload/common/jobid/JobId.h"
00011
00012 USERINTERFACE_NAMESPACE_BEGIN
00024 class Shadow {
00025 public:
00027 void attach( int port = 0 ) ;
00029 std::string empty (std::string buffer) ;
00031 void detach();
00035 void start();
00037 std::string getPipeErr();
00039 std::string getPipeIn();
00041 std::string getPipeOut();
00043 int getPort();
00045 int getPid();
00047 static std::string getHost() ;
00048
00049 private:
00050 friend class Job ;
00052 Shadow (edg::workload::common::jobid::JobId jid , Listener* ls) ;
00054 Shadow();
00056 ~Shadow();
00058 void set( edg::workload::common::jobid::JobId jid , Listener* ls=NULL) ;
00060 void console( int port = 0);
00062 void kill();
00063 int pid;
00064 int port ;
00065 std::string host;
00066 Listener *listener ;
00067 std::string pipeRoot;
00068 edg::workload::common::jobid::JobId jobId;
00069 };
00070
00071 USERINTERFACE_NAMESPACE_END }
00072 #endif