00001 #ifndef __EDG_WORKLOAD_LOGGING_CLIENT_JOBSTAT_H__
00002 #define __EDG_WORKLOAD_LOGGING_CLIENT_JOBSTAT_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00017 #ident "$Header: /local/reps/lcgware/workload/logging/client/jobstat.h.T,v 1.3 2003/04/10 14:05:58 salvet Exp $"
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00027 enum edg_wll_StatJobtype {
00028 EDG_WLL_STAT_SIMPLE,
00029 EDG_WLL_STAT_DAG,
00030 };
00031 enum edg_wll_StatDone_code {
00032 EDG_WLL_STAT_OK,
00033 EDG_WLL_STAT_FAILED,
00034 EDG_WLL_STAT_CANCELLED,
00035 };
00036
00037
00043 typedef enum _edg_wll_JobStatCode {
00045 EDG_WLL_JOB_UNDEF = 0,
00046 EDG_WLL_JOB_SUBMITTED,
00047 EDG_WLL_JOB_WAITING,
00048 EDG_WLL_JOB_READY,
00049 EDG_WLL_JOB_SCHEDULED,
00050 EDG_WLL_JOB_RUNNING,
00051 EDG_WLL_JOB_DONE,
00052 EDG_WLL_JOB_CLEARED,
00053 EDG_WLL_JOB_ABORTED,
00054 EDG_WLL_JOB_CANCELLED,
00055 EDG_WLL_JOB_UNKNOWN,
00056 EDG_WLL_JOB_PURGED,
00057 EDG_WLL_NUMBER_OF_STATCODES
00058 } edg_wll_JobStatCode;
00059
00064 typedef struct _edg_wll_TagValue {
00065 char * tag;
00066 char * value;
00067 } edg_wll_TagValue;
00068
00069
00075 typedef struct _edg_wll_JobStat {
00076 edg_wll_JobStatCode state;
00077 edg_wlc_JobId jobId;
00078 char * owner;
00079 enum edg_wll_StatJobtype jobtype;
00080 edg_wlc_JobId parent_job;
00081 char * seed;
00082 int children_num;
00083 char ** children;
00084 int * children_hist;
00085 struct _edg_wll_JobStat * children_states;
00086 char * condorId;
00087 char * globusId;
00088 char * localId;
00089 char * jdl;
00090 char * matched_jdl;
00091 char * destination;
00092 char * condor_jdl;
00093 char * rsl;
00094 char * reason;
00095 char * location;
00096 char * ce_node;
00097 char * network_server;
00098 int subjob_failed;
00099 enum edg_wll_StatDone_code done_code;
00100 int exit_code;
00101 int resubmitted;
00102 int cancelling;
00103 char * cancelReason;
00104 int cpuTime;
00105 edg_wll_TagValue * user_tags;
00106 struct timeval stateEnterTime;
00107 struct timeval lastUpdateTime;
00108 int * stateEnterTimes;
00109 int expectUpdate;
00110 char * expectFrom;
00111 char * acl;
00113 } edg_wll_JobStat;
00114
00120
00126 extern int edg_wll_InitStatus(edg_wll_JobStat *);
00127
00132 extern edg_wll_JobStat *edg_wll_CpyStatus(edg_wll_JobStat *,edg_wll_JobStat *);
00133
00138 extern void edg_wll_FreeStatus(edg_wll_JobStat *);
00139
00143 extern edg_wll_JobStatCode edg_wll_StringToStat(const char *);
00144
00148 extern char *edg_wll_StatToString(edg_wll_JobStatCode);
00149
00152 #ifdef __cplusplus
00153 }
00154 #endif
00155
00156 #endif