00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00027 #ifndef __DRMAA__JOBS_H
00028 #define __DRMAA__JOBS_H
00029
00030 #ifdef HAVE_CONFIG_H
00031 # include <pbs_config.h>
00032 #endif
00033
00034 #include <drmaa_impl.h>
00035
00042 typedef enum
00043 {
00044 DRMAA_JOB_SUSPENDED = 1 << 0,
00045 DRMAA_JOB_RESUMED = 1 << 1,
00046 DRMAA_JOB_TERMINATED = 1 << 2,
00047 DRMAA_JOB_DISPOSE = 1 << 3
00048 } job_flag_t;
00049
00056 struct drmaa_job_s
00057 {
00058 drmaa_job_t *next;
00059 char *jobid;
00064 int time_label;
00069 bool terminated;
00073 bool suspended;
00074 };
00075
00076 typedef struct drmaa_job_iter_s drmaa_job_iter_t;
00077
00078 enum { HASHTAB_SIZE = 1024 };
00079
00082 struct drmaa_job_iter_s
00083 {
00084 drmaa_session_t *c;
00085 unsigned hash;
00086 drmaa_job_t **iter;
00087 };
00088
00094 void
00095 drmaa_get_job_list_iter(drmaa_session_t *session, drmaa_job_iter_t *iter);
00096
00098 drmaa_job_t *
00099 drmaa_get_next_job(drmaa_job_iter_t *iter);
00100
00107 void
00108 drmaa_add_job(
00109 drmaa_session_t *c,
00110 drmaa_job_t *job
00111 );
00112
00124 bool
00125 drmaa_find_job(
00126 drmaa_session_t *c,
00127 const char *jobid,
00128 drmaa_job_t *found,
00129 unsigned flags
00130 );
00131
00132 void
00133 drmaa_delete_job_hashtab(drmaa_job_t **tab);
00134
00137 #endif
00138