...
Description: This header file will provide declarations for APIs and argument structures listed below.
pbsconn_db_conn_thandle: Structure used to maintain the database connection information. All elements of this structure are generic and are not bound to any particular database.
...
Code Block | ||
---|---|---|
| ||
struct pbs_db_obj_info {
int pbs_db_obj_type; /* identifies the contained object type */
union {
pbs_db_job_info_t *pbs_db_job; /* map database job structure to C */
pbs_db_jobscr_info_t *pbs_db_jobscr; /* map database job script to C */
pbs_db_resv_info_t *pbs_db_resv; /* map database resv structure to C */
pbs_db_svr_info_t *pbs_db_svr; /* map database server structure to C */
pbs_db_que_info_t *pbs_db_que; /* map database queue structure to C */
pbs_db_node_info_t *pbs_db_node; /* map database node structure to C */
pbs_db_sched_info_t *pbs_db_sched; /* map database scheduler structure to C */
pbs_db_mominfo_time_t *pbs_db_mominfo_tm; /* map database mominfo_time structure to C */
} pbs_db_un;
};
typedef struct pbs_db_obj_info pbs_db_obj_info_t;
/* Structure used to map database job structure to C */
struct pbs_db_job_info {
char ji_jobid[PBS_MAXSVRJOBID + 1]; /* job identifier */
INTEGER ji_state; /* INTEGERernal copy of state */
INTEGER ji_substate; /* job sub-state */
INTEGER ji_svrflags; /* server flags */
INTEGER ji_ordering; /* special scheduling ordering */
INTEGER ji_priority; /* INTEGERernal priority */
BIGINT ji_stime; /* time job started execution */
BIGINT ji_endtBdry; /* estimate upper bound on end time */
char ji_queue[PBS_MAXQUEUENAME + 1]; /* name of current queue */
char ji_destin[PBS_MAXROUTEDEST + 1]; /* dest from qmove/route */
INTEGER ji_un_type; /* job's queue type */
INTEGER ji_momaddr; /* host addr of Server */
INTEGER ji_momport; /* port # */
INTEGER ji_exitstat; /* job exit status from MOM */
BIGINT ji_quetime; /* time entered queue */
BIGINT ji_rteretry; /* route retry time */
INTEGER ji_fromsock; /* socket job coming over */
BIGINT ji_fromaddr; /* host job coming from */
char ji_4jid[8]; /* extended job save data */
char ji_4ash[8]; /* extended job save data */
INTEGER ji_credtype; /* credential type */
INTEGER ji_qrank; /* sort key for db query */
BIGINT ji_savetm; /* job save time */
BIGINT ji_creattm; /* job create time */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_job_info pbs_db_job_info_t;
/* Structure used to map database resv structure to C */
struct pbs_db_resv_info {
char ri_resvid[PBS_MAXSVRJOBID + 1]; /* reservation identifier */
char ri_queue[PBS_MAXQUEUENAME + 1]; /* queue used by reservation */
INTEGER ri_state; /* internal copy of state */
INTEGER ri_substate; /* substate of resv state */
INTEGER ri_type; /* "reservation" or "reservation job"*/
BIGINT ri_stime; /* left window boundry */
BIGINT ri_etime; /* right window boundry */
BIGINT ri_duration; /* reservation duration */
INTEGER ri_tactive; /* time reservation became active */
INTEGER ri_svrflags; /* server flags */
INTEGER ri_fromsock; /* resv from sock */
BIGINT ri_fromaddr; /* resv from sock addr */
BIGINT ri_creattm; /* resv create time on db */
BIGINT ri_savetm; /* resv save time on db */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_resv_info pbs_db_resv_info_t;
/* Structure used to map database server structure to C */
struct pbs_db_svr_info {
INTEGER sv_numjobs; /* number of job owned by server */
INTEGER sv_numque; /* nuber of queues managed */
BIGINT sv_jobidnumber; /* next number to use in new jobid */
BIGINT sv_creattm; /* time of server db create */
BIGINT sv_savetm; /* time of server db update */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_svr_info pbs_db_svr_info_t;
/* Structure used to map database scheduler structure to C */
struct pbs_db_sched_info {
char sched_name[PBS_MAXSCHEDNAME+1]; /* sched name */
BIGINT sched_creattm; /* sched create time on db */
BIGINT sched_savetm; /* sched save time on db */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_sched_info pbs_db_sched_info_t;
/* Structure used to map database queue structure to C */
struct pbs_db_que_info {
char qu_name[PBS_MAXQUEUENAME +1]; /* queue name */
INTEGER qu_type; /* queue type: exec, route */
BIGINT qu_ctime; /* time queue created */
BIGINT qu_mtime; /* time queue last modified */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_que_info pbs_db_que_info_t;
/* Structure used to map database node structure to C */
struct pbs_db_node_info {
char nd_name[PBS_MAXSERVERNAME+1]; /* vnode's name */
INTEGER nd_index; /* global node index */
BIGINT mom_modtime; /* node config update time */
char nd_hostname[PBS_MAXSERVERNAME+1]; /* node hostname */
INTEGER nd_state; /* state of node */
INTEGER nd_ntype; /* node type */
char nd_pque[PBS_MAXSERVERNAME+1]; /* queue to which it belongs */
BIGINT nd_creattm; /* node create time */
BIGINT nd_svtime; /* node save time */
pbs_db_attr_list_t attr_list; /* list of attributes */
};
typedef struct pbs_db_node_info pbs_db_node_info_t;
/* Structure used to map database mominfo_time structure to C */
struct pbs_db_mominfo_time {
BIGINT mit_time; /* time of the host to vnode map */
INTEGER mit_gen; /* generation of the host to vnode map */
};
typedef struct pbs_db_mominfo_time pbs_db_mominfo_time_t;
/* Structure used to map database job script to C */
struct pbs_db_jobscr_info {
char ji_jobid[PBS_MAXSVRJOBID + 1]; /* job identifier */
TEXT script; /* job script */
};
typedef struct pbs_db_jobscr_info pbs_db_jobscr_info_t; |
...
query_cb_t: Function pointer for call back function to process the data returned by the database. For each row/record returned by the search result, the function pointed by this pointer is called and the result is processed so that PBS can use it.
typedef int (*query_cb_t) (pbs_db_obj_info_t *, int *);
...