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.9 2007/11/30 15:50:59 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 = EDG_WLL_EVENT_TRANSFER,
00051 ACCEPTED = EDG_WLL_EVENT_ACCEPTED,
00052 REFUSED = EDG_WLL_EVENT_REFUSED,
00053 ENQUEUED = EDG_WLL_EVENT_ENQUEUED,
00054 DEQUEUED = EDG_WLL_EVENT_DEQUEUED,
00055 HELPERCALL = EDG_WLL_EVENT_HELPERCALL,
00056 HELPERRETURN = EDG_WLL_EVENT_HELPERRETURN,
00057 RUNNING = EDG_WLL_EVENT_RUNNING,
00058 RESUBMISSION = EDG_WLL_EVENT_RESUBMISSION,
00059 DONE = EDG_WLL_EVENT_DONE,
00060 CANCEL = EDG_WLL_EVENT_CANCEL,
00061 ABORT = EDG_WLL_EVENT_ABORT,
00062 CLEAR = EDG_WLL_EVENT_CLEAR,
00063 PURGE = EDG_WLL_EVENT_PURGE,
00064 MATCH = EDG_WLL_EVENT_MATCH,
00065 PENDING = EDG_WLL_EVENT_PENDING,
00066 REGJOB = EDG_WLL_EVENT_REGJOB,
00067 CHKPT = EDG_WLL_EVENT_CHKPT,
00068 LISTENER = EDG_WLL_EVENT_LISTENER,
00069 CURDESCR = EDG_WLL_EVENT_CURDESCR,
00070 USERTAG = EDG_WLL_EVENT_USERTAG,
00071 CHANGEACL = EDG_WLL_EVENT_CHANGEACL,
00072 NOTIFICATION = EDG_WLL_EVENT_NOTIFICATION,
00073 RESOURCEUSAGE = EDG_WLL_EVENT_RESOURCEUSAGE,
00074 REALLYRUNNING = EDG_WLL_EVENT_REALLYRUNNING,
00075 SUSPEND = EDG_WLL_EVENT_SUSPEND,
00076 RESUME = EDG_WLL_EVENT_RESUME,
00077 COLLECTIONSTATE = EDG_WLL_EVENT_COLLECTIONSTATE,
00078 PBSQUEUED = EDG_WLL_EVENT_PBSQUEUED,
00079 PBSMATCH = EDG_WLL_EVENT_PBSMATCH,
00080 PBSPENDING = EDG_WLL_EVENT_PBSPENDING,
00081 PBSRUN = EDG_WLL_EVENT_PBSRUN,
00082 PBSRERUN = EDG_WLL_EVENT_PBSRERUN,
00083 PBSDONE = EDG_WLL_EVENT_PBSDONE,
00084 PBSDEQUEUED = EDG_WLL_EVENT_PBSDEQUEUED,
00085 PBSRESOURCEUSAGE = EDG_WLL_EVENT_PBSRESOURCEUSAGE,
00086 PBSERROR = EDG_WLL_EVENT_PBSERROR,
00087 CONDORMATCH = EDG_WLL_EVENT_CONDORMATCH,
00088 CONDORREJECT = EDG_WLL_EVENT_CONDORREJECT,
00089 CONDORSHADOWSTARTED = EDG_WLL_EVENT_CONDORSHADOWSTARTED,
00090 CONDORSHADOWEXITED = EDG_WLL_EVENT_CONDORSHADOWEXITED,
00091 CONDORSTARTERSTARTED = EDG_WLL_EVENT_CONDORSTARTERSTARTED,
00092 CONDORSTARTEREXITED = EDG_WLL_EVENT_CONDORSTARTEREXITED,
00093 CONDORRESOURCEUSAGE = EDG_WLL_EVENT_CONDORRESOURCEUSAGE,
00094 CONDORERROR = EDG_WLL_EVENT_CONDORERROR,
00095 TYPE_MAX = EDG_WLL_EVENT__LAST
00096 };
00097
00104 enum Attr {
00108 ARRIVED = 0,
00112 CHILD = 1,
00116 CHILD_EVENT = 2,
00120 CLASSAD = 3,
00124 DESCR = 4,
00132 DEST_HOST = 5,
00136 DEST_ID = 6,
00140 DEST_INSTANCE = 7,
00144 DEST_JOBID = 8,
00148 DEST_PORT = 9,
00152 DESTINATION = 10,
00156 DONE_CODE = 11,
00161 ERROR_DESC = 12,
00165 EXIT_CODE = 13,
00169 EXIT_STATUS = 14,
00173 EXPIRES = 78,
00178 FROM = 15,
00183 FROM_HOST = 16,
00188 FROM_INSTANCE = 17,
00193 HELPER_NAME = 18,
00197 HELPER_PARAMS = 19,
00201 HISTOGRAM = 20,
00205 HOST = 21,
00209 JDL = 22,
00214 JOB = 23,
00218 JOBID = 24,
00222 JOB_EXIT_STATUS = 25,
00226 JOB_PID = 26,
00230 JOBSTAT = 27,
00234 JOBTYPE = 28,
00238 LEVEL = 29,
00243 LOCAL_JOBID = 30,
00250 NAME = 31,
00254 NODE = 32,
00258 NOTIFID = 33,
00262 NS = 34,
00266 NSUBJOBS = 35,
00270 OPERATION = 36,
00277 OWNER = 37,
00281 PARENT = 38,
00285 PERMISSION = 39,
00289 PERMISSION_TYPE = 40,
00293 PID = 41,
00297 PREEMPTING = 42,
00301 PRIORITY = 43,
00307 QUANTITY = 44,
00313 QUEUE = 45,
00328 REASON = 46,
00332 RESOURCE = 47,
00338 RESULT = 48,
00342 RETVAL = 49,
00346 SCHEDULER = 50,
00350 SEED = 51,
00354 SEQCODE = 52,
00358 SHADOW_EXIT_STATUS = 53,
00362 SHADOW_HOST = 54,
00367 SHADOW_PID = 55,
00371 SHADOW_PORT = 56,
00375 SHADOW_STATUS = 57,
00379 SOURCE = 58,
00383 SRC_INSTANCE = 59,
00388 SRC_ROLE = 60,
00392 STARTER_EXIT_STATUS = 61,
00397 STARTER_PID = 62,
00401 STATE = 63,
00407 STATUS_CODE = 64,
00411 SVC_HOST = 65,
00415 SVC_NAME = 66,
00419 SVC_PORT = 67,
00424 TAG = 68,
00428 TIMESTAMP = 69,
00434 UNIT = 70,
00438 UNIVERSE = 71,
00443 USAGE = 72,
00447 USER = 73,
00451 USER_ID = 74,
00455 USER_ID_TYPE = 75,
00459 VALUE = 76,
00463 WN_SEQ = 77,
00464 ATTR_MAX = 79
00465 };
00466
00468 enum ClearCode {
00469 CLEAR_USER = EDG_WLL_CLEAR_USER,
00470 CLEAR_TIMEOUT = EDG_WLL_CLEAR_TIMEOUT,
00471 CLEAR_NOOUTPUT = EDG_WLL_CLEAR_NOOUTPUT,
00472 };
00474 enum EnQueuedCode {
00475 ENQUEUED_START = EDG_WLL_ENQUEUED_START,
00476 ENQUEUED_OK = EDG_WLL_ENQUEUED_OK,
00477 ENQUEUED_REFUSED = EDG_WLL_ENQUEUED_REFUSED,
00478 ENQUEUED_FAIL = EDG_WLL_ENQUEUED_FAIL,
00479 };
00481 enum ResubmissionCode {
00482 RESUBMISSION_WILLRESUB = EDG_WLL_RESUBMISSION_WILLRESUB,
00483 RESUBMISSION_WONTRESUB = EDG_WLL_RESUBMISSION_WONTRESUB,
00484 RESUBMISSION_SHALLOW = EDG_WLL_RESUBMISSION_SHALLOW,
00485 };
00487 enum TransferCode {
00488 TRANSFER_START = EDG_WLL_TRANSFER_START,
00489 TRANSFER_OK = EDG_WLL_TRANSFER_OK,
00490 TRANSFER_REFUSED = EDG_WLL_TRANSFER_REFUSED,
00491 TRANSFER_FAIL = EDG_WLL_TRANSFER_FAIL,
00492 };
00494 enum CondorRejectCode {
00495 CONDORREJECT_NOMATCH = EDG_WLL_CONDORREJECT_NOMATCH,
00496 CONDORREJECT_OTHER = EDG_WLL_CONDORREJECT_OTHER,
00497 };
00499 enum CancelCode {
00500 CANCEL_REQ = EDG_WLL_CANCEL_REQ,
00501 CANCEL_REFUSE = EDG_WLL_CANCEL_REFUSE,
00502 CANCEL_DONE = EDG_WLL_CANCEL_DONE,
00503 CANCEL_ABORT = EDG_WLL_CANCEL_ABORT,
00504 };
00506 enum DoneCode {
00507 DONE_OK = EDG_WLL_DONE_OK,
00508 DONE_FAILED = EDG_WLL_DONE_FAILED,
00509 DONE_CANCELLED = EDG_WLL_DONE_CANCELLED,
00510 };
00512 enum RegJobCode {
00513 REGJOB_SIMPLE = EDG_WLL_REGJOB_SIMPLE,
00514 REGJOB_DAG = EDG_WLL_REGJOB_DAG,
00515 REGJOB_PARTITIONABLE = EDG_WLL_REGJOB_PARTITIONABLE,
00516 REGJOB_PARTITIONED = EDG_WLL_REGJOB_PARTITIONED,
00517 REGJOB_COLLECTION = EDG_WLL_REGJOB_COLLECTION,
00518 REGJOB_PBS = EDG_WLL_REGJOB_PBS,
00519 REGJOB_CONDOR = EDG_WLL_REGJOB_CONDOR,
00520 };
00522 enum CondorResourceUsageCode {
00523 CONDORRESOURCEUSAGE_REQUESTED = EDG_WLL_CONDORRESOURCEUSAGE_REQUESTED,
00524 CONDORRESOURCEUSAGE_USED = EDG_WLL_CONDORRESOURCEUSAGE_USED,
00525 };
00527 enum PBSResourceUsageCode {
00528 PBSRESOURCEUSAGE_REQUESTED = EDG_WLL_PBSRESOURCEUSAGE_REQUESTED,
00529 PBSRESOURCEUSAGE_USED = EDG_WLL_PBSRESOURCEUSAGE_USED,
00530 };
00532 enum HelperCallCode {
00533 HELPERCALL_CALLING = EDG_WLL_HELPERCALL_CALLING,
00534 HELPERCALL_CALLED = EDG_WLL_HELPERCALL_CALLED,
00535 };
00537 enum HelperReturnCode {
00538 HELPERRETURN_CALLING = EDG_WLL_HELPERRETURN_CALLING,
00539 HELPERRETURN_CALLED = EDG_WLL_HELPERRETURN_CALLED,
00540 };
00541
00543 enum AttrType { INT_T,
00544 STRING_T,
00545 TIMEVAL_T,
00547 PORT_T,
00548 LOGSRC_T,
00550 JOBID_T,
00551 NOTIFID_T,
00552 FLOAT_T,
00553 DOUBLE_T,
00554 };
00555
00556 Type type;
00562 Event(void);
00563
00569 Event(edg_wll_Event *);
00570
00576 Event(const Event &);
00577
00582 ~Event(void);
00583
00584
00591 Event & operator= (const Event &);
00592
00599 const std::string & name(void) const;
00600
00609 int getValInt(Attr name) const;
00610
00619 float getValFloat(Attr name) const;
00620
00629 double getValDouble(Attr name) const;
00630
00639 std::string getValString(Attr name) const;
00640
00647 struct timeval getValTime(Attr name) const;
00648
00657 const glite::wmsutils::jobid::JobId getValJobId(Attr name) const;
00658
00667 static const std::string & getAttrName(Attr name);
00668
00675 const std::vector<std::pair<Attr,AttrType> > & getAttrs(void) const;
00676
00685 static const std::string getEventName(Type type);
00686
00687 private:
00688 std::string my_name;
00689 static void destroyFlesh(void *);
00690 CountRef<Event> *flesh;
00691 };
00692
00693 EWL_END_NAMESPACE
00694
00695 #endif