00001 #ifndef __EDG_WORKLOAD_LOGGING_EVENT__
00002 #define __EDG_WORKLOAD_LOGGING_EVENT__
00003
00004 #include "edg/workload/logging/client/CountRef.h"
00005 #include "edg/workload/common/jobid/JobId.h"
00006
00007 #include <utility>
00008 #include <vector>
00009 #include <string>
00010
00011 #ident "$Header: /local/reps/lcgware/workload/logging/client/Event.h.T,v 1.29 2003/04/11 05:59:12 salvet Exp $"
00012
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "edg/workload/logging/client/events.h"
00026
00027 EWL_BEGIN_NAMESPACE;
00028
00029 class Event {
00030 friend class Job;
00031 friend class ServerConnection;
00032 friend class CountRef<Event>;
00033 public:
00038 enum Type {
00039 UNDEF = 0,
00040 TRANSFER,
00041 ACCEPTED,
00042 REFUSED,
00043 ENQUEUED,
00044 DEQUEUED,
00045 HELPERCALL,
00046 HELPERRETURN,
00047 RUNNING,
00048 RESUBMISSION,
00049 DONE,
00050 CANCEL,
00051 ABORT,
00052 CLEAR,
00053 PURGE,
00054 MATCH,
00055 PENDING,
00056 REGJOB,
00057 CHKPT,
00058 LISTENER,
00059 CURDESCR,
00060 USERTAG,
00061 CHANGEACL,
00062 TYPE_MAX
00063 };
00064
00066 enum Attr {
00070 CLASSAD,
00074 DESCR,
00078 DEST_HOST,
00082 DEST_ID,
00086 DEST_INSTANCE,
00090 DEST_JOBID,
00094 DESTINATION,
00098 EXIT_CODE,
00103 FROM,
00108 FROM_HOST,
00113 FROM_INSTANCE,
00118 HELPER_NAME,
00122 HELPER_PARAMS,
00126 HOST,
00130 JDL,
00135 JOB,
00139 JOBID,
00143 JOBTYPE,
00147 LEVEL,
00152 LOCAL_JOBID,
00156 NAME,
00160 NODE,
00164 NS,
00168 NSUBJOBS,
00172 OPERATION,
00176 PARENT,
00180 PERMISSION,
00184 PERMISSION_TYPE,
00188 PRIORITY,
00193 QUEUE,
00205 REASON,
00211 RESULT,
00215 RETVAL,
00219 SEED,
00223 SEQCODE,
00227 SOURCE,
00231 SRC_INSTANCE,
00236 SRC_ROLE,
00241 STATUS_CODE,
00245 SVC_HOST,
00249 SVC_NAME,
00253 SVC_PORT,
00258 TAG,
00262 TIMESTAMP,
00266 USER,
00270 USER_ID,
00274 USER_ID_TYPE,
00278 VALUE,
00279 ATTR_MAX
00280 };
00281
00282 enum RegJobCode {
00283 REGJOB_SIMPLE,
00284 REGJOB_DAG,
00285 REGJOB_PARTITIONABLE,
00286 REGJOB_PARTITIONED,
00287 };
00288 enum HelperReturnCode {
00289 HELPERRETURN_CALLING,
00290 HELPERRETURN_CALLED,
00291 };
00292 enum HelperCallCode {
00293 HELPERCALL_CALLING,
00294 HELPERCALL_CALLED,
00295 };
00296 enum ResubmissionCode {
00297 RESUBMISSION_WILLRESUB,
00298 RESUBMISSION_WONTRESUB,
00299 };
00300 enum EnQueuedCode {
00301 ENQUEUED_START,
00302 ENQUEUED_OK,
00303 ENQUEUED_REFUSED,
00304 ENQUEUED_FAIL,
00305 };
00306 enum TransferCode {
00307 TRANSFER_START,
00308 TRANSFER_OK,
00309 TRANSFER_REFUSED,
00310 TRANSFER_FAIL,
00311 };
00312 enum ClearCode {
00313 CLEAR_USER,
00314 CLEAR_TIMEOUT,
00315 CLEAR_NOOUTPUT,
00316 };
00317 enum CancelCode {
00318 CANCEL_REQ,
00319 CANCEL_REFUSE,
00320 CANCEL_DONE,
00321 CANCEL_ABORT,
00322 };
00323 enum DoneCode {
00324 DONE_OK,
00325 DONE_FAILED,
00326 DONE_CANCELLED,
00327 };
00328
00329 enum AttrType { INT_T, STRING_T, TIMEVAL_T, PORT_T, LOGSRC_T, JOBID_T };
00330
00331 Type type;
00332
00333 Event(void);
00334 Event(edg_wll_Event *);
00335 Event(const Event &);
00336 ~Event(void);
00337
00338
00340 Event & operator= (const Event &);
00341
00343 const std::string & name(void) const;
00344
00346 int getValInt(Attr) const;
00347
00349 std::string getValString(Attr) const;
00350
00352 struct timeval getValTime(Attr) const;
00353
00355 const edg::workload::common::jobid::JobId getValJobId(Attr) const;
00356
00358 const std::string & getAttrName(Attr) const;
00359
00361 const std::vector<std::pair<Attr,AttrType> > & getAttrs(void) const;
00362
00363 private:
00364 static void destroyFlesh(void *);
00365 CountRef<Event> *flesh;
00366 };
00367
00368 EWL_END_NAMESPACE;
00369
00370 #endif