00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_JOBSTATUS_HPP__
00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_JOBSTATUS_HPP__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <sys/time.h>
00014 #include <string>
00015 #include <utility>
00016 #include <vector>
00017
00018 #include "glite/wmsutils/jobid/JobId.h"
00019
00020 #include "glite/lb/jobstat.h"
00021 #include "glite/lb/CountRef.h"
00022
00023 EWL_BEGIN_NAMESPACE;
00024
00037 class JobStatus {
00038 friend class Job;
00039 friend class CountRef<JobStatus>;
00040 public:
00041
00043 enum Code {
00044 UNDEF = 0,
00045 SUBMITTED,
00046 WAITING,
00047 READY,
00048 SCHEDULED,
00049 RUNNING,
00050 DONE,
00051 CLEARED,
00052 ABORTED,
00053 CANCELLED,
00054 UNKNOWN,
00055 PURGED,
00056 CODE_MAX
00057 };
00058
00064 enum Attr {
00066 ACL,
00068 CANCEL_REASON,
00070 CANCELLING,
00072 CE_NODE,
00074 CHILDREN,
00076 CHILDREN_HIST,
00078 CHILDREN_NUM,
00080 CHILDREN_STATES,
00082 CONDOR_ID,
00084 CONDOR_JDL,
00086 CPU_TIME,
00088 DESTINATION,
00090 DONE_CODE,
00092 EXIT_CODE,
00094 EXPECT_FROM,
00096 EXPECT_UPDATE,
00098 GLOBUS_ID,
00100 JDL,
00102 JOB_ID,
00104 JOBTYPE,
00106 LAST_UPDATE_TIME,
00108 LOCAL_ID,
00110 LOCATION,
00112 MATCHED_JDL,
00114 NETWORK_SERVER,
00116 OWNER,
00118 PARENT_JOB,
00120 PAYLOAD_RUNNING,
00122 POSSIBLE_CE_NODES,
00124 POSSIBLE_DESTINATIONS,
00126 REASON,
00128 RESUBMITTED,
00130 RSL,
00132 SEED,
00134 STATE_ENTER_TIME,
00136 STATE_ENTER_TIMES,
00138 SUBJOB_FAILED,
00140 USER_TAGS,
00141 ATTR_MAX
00142 };
00143
00144 enum {
00145 DONE_CODE_OK,
00146 DONE_CODE_FAILED,
00147 DONE_CODE_CANCELLED,
00148 };
00149 enum {
00150 JOBTYPE_SIMPLE,
00151 JOBTYPE_DAG,
00152 };
00158 enum AttrType { INT_T,
00159 STRING_T,
00160 TIMEVAL_T,
00161 BOOL_T,
00162 JOBID_T,
00163 INTLIST_T,
00164 STRLIST_T,
00165 TAGLIST_T,
00166 STSLIST_T
00167 };
00168
00174 Code status;
00175
00180 const std::string & name(void) const;
00181
00189 int getValInt(Attr name) const;
00190
00198 std::string getValString(Attr name) const;
00199
00207 struct timeval getValTime(Attr name) const;
00208
00216 const glite::wmsutils::jobid::JobId getValJobId(Attr name) const;
00217
00225 bool getValBool(Attr name) const;
00226
00234 const std::vector<int> getValIntList(Attr name) const;
00235
00243 const std::vector<std::string> getValStringList(Attr name) const;
00244
00252 const std::vector<std::pair<std::string,std::string> > getValTagList(Attr name) const;
00253
00261 const std::vector<JobStatus> getValJobStatusList(Attr name) const;
00262
00270 const std::string& getAttrName(Attr name) const;
00271
00279 const std::vector<std::pair<Attr,AttrType> >& getAttrs(void) const;
00280
00285 JobStatus(void);
00286
00294 JobStatus(const JobStatus &orig);
00295
00303 JobStatus & operator=(const JobStatus &orig);
00304
00310 JobStatus(const edg_wll_JobStat &src);
00311
00317 JobStatus & operator=(const edg_wll_JobStat& src);
00318
00323 virtual ~JobStatus();
00324
00325 protected:
00326 edg_wll_JobStat *c_ptr(void);
00327
00328 private:
00329 static void destroyFlesh(void *);
00330 CountRef<JobStatus> *flesh;
00331 };
00332
00333 EWL_END_NAMESPACE;
00334
00335 #endif
00336