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 ClearCode {
00283 CLEAR_USER,
00284 CLEAR_TIMEOUT,
00285 CLEAR_NOOUTPUT,
00286 };
00287 enum RegJobCode {
00288 REGJOB_SIMPLE,
00289 REGJOB_DAG,
00290 REGJOB_PARTITIONABLE,
00291 REGJOB_PARTITIONED,
00292 };
00293 enum EnQueuedCode {
00294 ENQUEUED_START,
00295 ENQUEUED_OK,
00296 ENQUEUED_REFUSED,
00297 ENQUEUED_FAIL,
00298 };
00299 enum ResubmissionCode {
00300 RESUBMISSION_WILLRESUB,
00301 RESUBMISSION_WONTRESUB,
00302 };
00303 enum TransferCode {
00304 TRANSFER_START,
00305 TRANSFER_OK,
00306 TRANSFER_REFUSED,
00307 TRANSFER_FAIL,
00308 };
00309 enum DoneCode {
00310 DONE_OK,
00311 DONE_FAILED,
00312 DONE_CANCELLED,
00313 };
00314 enum CancelCode {
00315 CANCEL_REQ,
00316 CANCEL_REFUSE,
00317 CANCEL_DONE,
00318 CANCEL_ABORT,
00319 };
00320 enum HelperCallCode {
00321 HELPERCALL_CALLING,
00322 HELPERCALL_CALLED,
00323 };
00324 enum HelperReturnCode {
00325 HELPERRETURN_CALLING,
00326 HELPERRETURN_CALLED,
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