00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_NOTIFICATION_HPP__ 00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_NOTIFICATION_HPP__ 00003 00004 00005 #include "glite/wmsutils/jobid/JobId.h" 00006 00007 #include "glite/lb/consumer.h" 00008 #include "glite/lb/notification.h" 00009 #include "glite/lb/JobStatus.h" 00010 00011 00012 EWL_BEGIN_NAMESPACE 00013 00014 00019 class Notification { 00020 public: 00024 Notification(); 00025 00031 Notification(const std::string host,const u_int16_t port); 00032 00037 Notification(const std::string notifId); 00038 00039 ~Notification(); 00040 00041 std::string getNotifId() const; 00042 time_t getValid() const; 00043 int getFd() const; 00050 void addJob(const glite::wmsutils::jobid::JobId &jobId); 00051 00055 void removeJob(const glite::wmsutils::jobid::JobId &jobId); 00056 00058 std::string getJobs(); 00059 00061 void setStates(const std::vector<glite::lb::JobStatus::Code> &); 00062 00064 std::string getStates(); 00065 00069 void Register(); 00070 00075 void Bind(const std::string address); 00076 00082 int receive(glite::lb::JobStatus &,timeval &); 00083 00084 private: 00085 std::vector<glite::wmsutils::jobid::JobId> jobs; 00086 std::vector<glite::lb::JobStatus::Code> states; 00087 00088 edg_wll_Context ctx; 00089 edg_wll_NotifId notifId; 00090 time_t valid; 00091 }; 00092 00093 00094 EWL_END_NAMESPACE 00095 00096 #endif