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/glite/org.glite.lb.client-interface/interface/Attic/Event.h.T,v 1.5.22.10 2010/03/16 09:12:22 zsustr Exp $"
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include "glite/lb/events.h"
00044 #include "glite/lb/notifid.h"
00045
00046 EWL_BEGIN_NAMESPACE
00047
00057 class Event {
00058 friend class Job;
00059 friend class ServerConnection;
00060 friend class CountRef<Event>;
00061 public:
00065 enum Type {
00066 UNDEF = 0,
00067 TRANSFER = EDG_WLL_EVENT_TRANSFER,
00068 ACCEPTED = EDG_WLL_EVENT_ACCEPTED,
00069 REFUSED = EDG_WLL_EVENT_REFUSED,
00070 ENQUEUED = EDG_WLL_EVENT_ENQUEUED,
00071 DEQUEUED = EDG_WLL_EVENT_DEQUEUED,
00072 HELPERCALL = EDG_WLL_EVENT_HELPERCALL,
00073 HELPERRETURN = EDG_WLL_EVENT_HELPERRETURN,
00074 RUNNING = EDG_WLL_EVENT_RUNNING,
00075 RESUBMISSION = EDG_WLL_EVENT_RESUBMISSION,
00076 DONE = EDG_WLL_EVENT_DONE,
00077 CANCEL = EDG_WLL_EVENT_CANCEL,
00078 ABORT = EDG_WLL_EVENT_ABORT,
00079 CLEAR = EDG_WLL_EVENT_CLEAR,
00080 PURGE = EDG_WLL_EVENT_PURGE,
00081 MATCH = EDG_WLL_EVENT_MATCH,
00082 PENDING = EDG_WLL_EVENT_PENDING,
00083 REGJOB = EDG_WLL_EVENT_REGJOB,
00084 CHKPT = EDG_WLL_EVENT_CHKPT,
00085 LISTENER = EDG_WLL_EVENT_LISTENER,
00086 CURDESCR = EDG_WLL_EVENT_CURDESCR,
00087 USERTAG = EDG_WLL_EVENT_USERTAG,
00088 CHANGEACL = EDG_WLL_EVENT_CHANGEACL,
00089 NOTIFICATION = EDG_WLL_EVENT_NOTIFICATION,
00090 RESOURCEUSAGE = EDG_WLL_EVENT_RESOURCEUSAGE,
00091 REALLYRUNNING = EDG_WLL_EVENT_REALLYRUNNING,
00092 SUSPEND = EDG_WLL_EVENT_SUSPEND,
00093 RESUME = EDG_WLL_EVENT_RESUME,
00094 COLLECTIONSTATE = EDG_WLL_EVENT_COLLECTIONSTATE,
00095 PBSQUEUED = EDG_WLL_EVENT_PBSQUEUED,
00096 PBSMATCH = EDG_WLL_EVENT_PBSMATCH,
00097 PBSPENDING = EDG_WLL_EVENT_PBSPENDING,
00098 PBSRUN = EDG_WLL_EVENT_PBSRUN,
00099 PBSRERUN = EDG_WLL_EVENT_PBSRERUN,
00100 PBSDONE = EDG_WLL_EVENT_PBSDONE,
00101 PBSDEQUEUED = EDG_WLL_EVENT_PBSDEQUEUED,
00102 PBSRESOURCEUSAGE = EDG_WLL_EVENT_PBSRESOURCEUSAGE,
00103 PBSERROR = EDG_WLL_EVENT_PBSERROR,
00104 CONDORMATCH = EDG_WLL_EVENT_CONDORMATCH,
00105 CONDORREJECT = EDG_WLL_EVENT_CONDORREJECT,
00106 CONDORSHADOWSTARTED = EDG_WLL_EVENT_CONDORSHADOWSTARTED,
00107 CONDORSHADOWEXITED = EDG_WLL_EVENT_CONDORSHADOWEXITED,
00108 CONDORSTARTERSTARTED = EDG_WLL_EVENT_CONDORSTARTERSTARTED,
00109 CONDORSTARTEREXITED = EDG_WLL_EVENT_CONDORSTARTEREXITED,
00110 CONDORRESOURCEUSAGE = EDG_WLL_EVENT_CONDORRESOURCEUSAGE,
00111 CONDORERROR = EDG_WLL_EVENT_CONDORERROR,
00112 TYPE_MAX = EDG_WLL_EVENT__LAST
00113 };
00114
00121 enum Attr {
00125 ARRIVED = 0,
00129 CHILD = 1,
00133 CHILD_EVENT = 2,
00137 CLASSAD = 3,
00141 DESCR = 4,
00149 DEST_HOST = 5,
00153 DEST_ID = 6,
00157 DEST_INSTANCE = 7,
00161 DEST_JOBID = 8,
00165 DEST_PORT = 9,
00169 DESTINATION = 10,
00173 DONE_CODE = 11,
00178 ERROR_DESC = 12,
00182 EXIT_CODE = 13,
00186 EXIT_STATUS = 14,
00190 EXPIRES = 78,
00195 FROM = 15,
00200 FROM_HOST = 16,
00205 FROM_INSTANCE = 17,
00210 HELPER_NAME = 18,
00214 HELPER_PARAMS = 19,
00218 HISTOGRAM = 20,
00222 HOST = 21,
00226 JDL = 22,
00231 JOB = 23,
00235 JOBID = 24,
00239 JOB_EXIT_STATUS = 25,
00243 JOB_PID = 26,
00247 JOBSTAT = 27,
00251 JOBTYPE = 28,
00255 LEVEL = 29,
00260 LOCAL_JOBID = 30,
00267 NAME = 31,
00271 NODE = 32,
00275 NOTIFID = 33,
00279 NS = 34,
00283 NSUBJOBS = 35,
00287 OPERATION = 36,
00294 OWNER = 37,
00298 PARENT = 38,
00302 PERMISSION = 39,
00306 PERMISSION_TYPE = 40,
00310 PID = 41,
00314 PREEMPTING = 42,
00318 PRIORITY = 43,
00324 QUANTITY = 44,
00330 QUEUE = 45,
00345 REASON = 46,
00349 RESOURCE = 47,
00355 RESULT = 48,
00359 RETVAL = 49,
00363 SCHEDULER = 50,
00367 SEED = 51,
00371 SEQCODE = 52,
00375 SHADOW_EXIT_STATUS = 53,
00379 SHADOW_HOST = 54,
00384 SHADOW_PID = 55,
00388 SHADOW_PORT = 56,
00392 SHADOW_STATUS = 57,
00396 SOURCE = 58,
00400 SRC_INSTANCE = 59,
00405 SRC_ROLE = 60,
00409 STARTER_EXIT_STATUS = 61,
00414 STARTER_PID = 62,
00418 STATE = 63,
00424 STATUS_CODE = 64,
00428 SVC_HOST = 65,
00432 SVC_NAME = 66,
00436 SVC_PORT = 67,
00441 TAG = 68,
00445 TIMESTAMP = 69,
00451 UNIT = 70,
00455 UNIVERSE = 71,
00460 USAGE = 72,
00464 USER = 73,
00468 USER_ID = 74,
00472 USER_ID_TYPE = 75,
00476 VALUE = 76,
00480 WN_SEQ = 77,
00481 ATTR_MAX = 79
00482 };
00483
00485 enum ClearCode {
00486 CLEAR_USER = EDG_WLL_CLEAR_USER,
00487 CLEAR_TIMEOUT = EDG_WLL_CLEAR_TIMEOUT,
00488 CLEAR_NOOUTPUT = EDG_WLL_CLEAR_NOOUTPUT,
00489 };
00491 enum EnQueuedCode {
00492 ENQUEUED_START = EDG_WLL_ENQUEUED_START,
00493 ENQUEUED_OK = EDG_WLL_ENQUEUED_OK,
00494 ENQUEUED_REFUSED = EDG_WLL_ENQUEUED_REFUSED,
00495 ENQUEUED_FAIL = EDG_WLL_ENQUEUED_FAIL,
00496 };
00498 enum ResubmissionCode {
00499 RESUBMISSION_WILLRESUB = EDG_WLL_RESUBMISSION_WILLRESUB,
00500 RESUBMISSION_WONTRESUB = EDG_WLL_RESUBMISSION_WONTRESUB,
00501 RESUBMISSION_SHALLOW = EDG_WLL_RESUBMISSION_SHALLOW,
00502 };
00504 enum TransferCode {
00505 TRANSFER_START = EDG_WLL_TRANSFER_START,
00506 TRANSFER_OK = EDG_WLL_TRANSFER_OK,
00507 TRANSFER_REFUSED = EDG_WLL_TRANSFER_REFUSED,
00508 TRANSFER_FAIL = EDG_WLL_TRANSFER_FAIL,
00509 };
00511 enum CondorRejectCode {
00512 CONDORREJECT_NOMATCH = EDG_WLL_CONDORREJECT_NOMATCH,
00513 CONDORREJECT_OTHER = EDG_WLL_CONDORREJECT_OTHER,
00514 };
00516 enum CancelCode {
00517 CANCEL_REQ = EDG_WLL_CANCEL_REQ,
00518 CANCEL_REFUSE = EDG_WLL_CANCEL_REFUSE,
00519 CANCEL_DONE = EDG_WLL_CANCEL_DONE,
00520 CANCEL_ABORT = EDG_WLL_CANCEL_ABORT,
00521 };
00523 enum DoneCode {
00524 DONE_OK = EDG_WLL_DONE_OK,
00525 DONE_FAILED = EDG_WLL_DONE_FAILED,
00526 DONE_CANCELLED = EDG_WLL_DONE_CANCELLED,
00527 };
00529 enum RegJobCode {
00530 REGJOB_SIMPLE = EDG_WLL_REGJOB_SIMPLE,
00531 REGJOB_DAG = EDG_WLL_REGJOB_DAG,
00532 REGJOB_PARTITIONABLE = EDG_WLL_REGJOB_PARTITIONABLE,
00533 REGJOB_PARTITIONED = EDG_WLL_REGJOB_PARTITIONED,
00534 REGJOB_COLLECTION = EDG_WLL_REGJOB_COLLECTION,
00535 REGJOB_PBS = EDG_WLL_REGJOB_PBS,
00536 REGJOB_CONDOR = EDG_WLL_REGJOB_CONDOR,
00537 };
00539 enum CondorResourceUsageCode {
00540 CONDORRESOURCEUSAGE_REQUESTED = EDG_WLL_CONDORRESOURCEUSAGE_REQUESTED,
00541 CONDORRESOURCEUSAGE_USED = EDG_WLL_CONDORRESOURCEUSAGE_USED,
00542 };
00544 enum PBSResourceUsageCode {
00545 PBSRESOURCEUSAGE_REQUESTED = EDG_WLL_PBSRESOURCEUSAGE_REQUESTED,
00546 PBSRESOURCEUSAGE_USED = EDG_WLL_PBSRESOURCEUSAGE_USED,
00547 };
00549 enum HelperCallCode {
00550 HELPERCALL_CALLING = EDG_WLL_HELPERCALL_CALLING,
00551 HELPERCALL_CALLED = EDG_WLL_HELPERCALL_CALLED,
00552 };
00554 enum HelperReturnCode {
00555 HELPERRETURN_CALLING = EDG_WLL_HELPERRETURN_CALLING,
00556 HELPERRETURN_CALLED = EDG_WLL_HELPERRETURN_CALLED,
00557 };
00558
00560 enum AttrType { INT_T,
00561 STRING_T,
00562 TIMEVAL_T,
00564 PORT_T,
00565 LOGSRC_T,
00567 JOBID_T,
00568 NOTIFID_T,
00569 FLOAT_T,
00570 DOUBLE_T,
00571 };
00572
00573 Type type;
00579 Event(void);
00580
00586 Event(edg_wll_Event *);
00587
00593 Event(const Event &);
00594
00599 ~Event(void);
00600
00601
00608 Event & operator= (const Event &);
00609
00616 const std::string & name(void) const;
00617
00626 int getValInt(Attr name) const;
00627
00636 float getValFloat(Attr name) const;
00637
00646 double getValDouble(Attr name) const;
00647
00656 std::string getValString(Attr name) const;
00657
00664 struct timeval getValTime(Attr name) const;
00665
00674 const glite::wmsutils::jobid::JobId getValJobId(Attr name) const;
00675
00684 static const std::string & getAttrName(Attr name);
00685
00692 const std::vector<std::pair<Attr,AttrType> > & getAttrs(void) const;
00693
00702 static const std::string getEventName(Type type);
00703
00704 private:
00705 std::string my_name;
00706 static void destroyFlesh(void *);
00707 CountRef<Event> *flesh;
00708 };
00709
00710 EWL_END_NAMESPACE
00711
00712 #endif