00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_EVENT_HPP__
00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_EVENT_HPP__
00003
00004
00005 #include <utility>
00006 #include <vector>
00007 #include <string>
00008
00009 #include "glite/wmsutils/jobid/JobId.h"
00010 #include "glite/lb/CountRef.h"
00011
00012 #ident "$Header: /cvs/jra1mw/org.glite.lb.client-interface/interface/Event.h.T,v 1.5 2005/08/03 09:30:10 akrenek Exp $"
00013
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "glite/lb/events.h"
00027 #include "glite/lb/notifid.h"
00028
00029 EWL_BEGIN_NAMESPACE
00030
00040 class Event {
00041 friend class Job;
00042 friend class ServerConnection;
00043 friend class CountRef<Event>;
00044 public:
00048 enum Type {
00049 UNDEF = 0,
00050 TRANSFER,
00051 ACCEPTED,
00052 REFUSED,
00053 ENQUEUED,
00054 DEQUEUED,
00055 HELPERCALL,
00056 HELPERRETURN,
00057 RUNNING,
00058 RESUBMISSION,
00059 DONE,
00060 CANCEL,
00061 ABORT,
00062 CLEAR,
00063 PURGE,
00064 MATCH,
00065 PENDING,
00066 REGJOB,
00067 CHKPT,
00068 LISTENER,
00069 CURDESCR,
00070 USERTAG,
00071 CHANGEACL,
00072 NOTIFICATION,
00073 RESOURCEUSAGE,
00074 REALLYRUNNING,
00075 TYPE_MAX
00076 };
00077
00084 enum Attr {
00088 ARRIVED,
00092 CLASSAD,
00096 DESCR,
00101 DEST_HOST,
00105 DEST_ID,
00109 DEST_INSTANCE,
00113 DEST_JOBID,
00117 DEST_PORT,
00121 DESTINATION,
00125 EXIT_CODE,
00130 FROM,
00135 FROM_HOST,
00140 FROM_INSTANCE,
00145 HELPER_NAME,
00149 HELPER_PARAMS,
00153 HOST,
00157 JDL,
00162 JOB,
00166 JOBID,
00170 JOBSTAT,
00174 JOBTYPE,
00178 LEVEL,
00183 LOCAL_JOBID,
00187 NAME,
00191 NODE,
00195 NOTIFID,
00199 NS,
00203 NSUBJOBS,
00207 OPERATION,
00211 OWNER,
00215 PARENT,
00219 PERMISSION,
00223 PERMISSION_TYPE,
00227 PRIORITY,
00231 QUANTITY,
00236 QUEUE,
00248 REASON,
00252 RESOURCE,
00258 RESULT,
00262 RETVAL,
00266 SEED,
00270 SEQCODE,
00274 SOURCE,
00278 SRC_INSTANCE,
00283 SRC_ROLE,
00288 STATUS_CODE,
00292 SVC_HOST,
00296 SVC_NAME,
00300 SVC_PORT,
00305 TAG,
00309 TIMESTAMP,
00313 UNIT,
00317 USER,
00321 USER_ID,
00325 USER_ID_TYPE,
00329 VALUE,
00333 WN_SEQ,
00334 ATTR_MAX
00336 };
00337
00339 enum ClearCode {
00340 CLEAR_USER,
00341 CLEAR_TIMEOUT,
00342 CLEAR_NOOUTPUT,
00343 };
00345 enum RegJobCode {
00346 REGJOB_SIMPLE,
00347 REGJOB_DAG,
00348 REGJOB_PARTITIONABLE,
00349 REGJOB_PARTITIONED,
00350 };
00352 enum EnQueuedCode {
00353 ENQUEUED_START,
00354 ENQUEUED_OK,
00355 ENQUEUED_REFUSED,
00356 ENQUEUED_FAIL,
00357 };
00359 enum ResubmissionCode {
00360 RESUBMISSION_WILLRESUB,
00361 RESUBMISSION_WONTRESUB,
00362 RESUBMISSION_SHALLOW,
00363 };
00365 enum TransferCode {
00366 TRANSFER_START,
00367 TRANSFER_OK,
00368 TRANSFER_REFUSED,
00369 TRANSFER_FAIL,
00370 };
00372 enum DoneCode {
00373 DONE_OK,
00374 DONE_FAILED,
00375 DONE_CANCELLED,
00376 };
00378 enum CancelCode {
00379 CANCEL_REQ,
00380 CANCEL_REFUSE,
00381 CANCEL_DONE,
00382 CANCEL_ABORT,
00383 };
00385 enum HelperCallCode {
00386 HELPERCALL_CALLING,
00387 HELPERCALL_CALLED,
00388 };
00390 enum HelperReturnCode {
00391 HELPERRETURN_CALLING,
00392 HELPERRETURN_CALLED,
00393 };
00394
00396 enum AttrType { INT_T,
00397 STRING_T,
00398 TIMEVAL_T,
00400 PORT_T,
00401 LOGSRC_T,
00403 JOBID_T,
00404 NOTIFID_T
00405 };
00406
00407 Type type;
00413 Event(void);
00414
00420 Event(edg_wll_Event *);
00421
00427 Event(const Event &);
00428
00433 ~Event(void);
00434
00435
00442 Event & operator= (const Event &);
00443
00450 const std::string & name(void) const;
00451
00460 int getValInt(Attr name) const;
00461
00470 std::string getValString(Attr name) const;
00471
00478 struct timeval getValTime(Attr name) const;
00479
00488 const glite::wmsutils::jobid::JobId getValJobId(Attr name) const;
00489
00498 const std::string & getAttrName(Attr name) const;
00499
00506 const std::vector<std::pair<Attr,AttrType> > & getAttrs(void) const;
00507
00508 private:
00509 static void destroyFlesh(void *);
00510 CountRef<Event> *flesh;
00511 };
00512
00513 EWL_END_NAMESPACE
00514
00515 #endif