#if !defined(_TYPEMAP_H_) #define _TYPEMAP_H_ 1 #include #include "clusterconfig.h" #include "xce/types.h" typedef struct { char* resname; char* hostname; } xce_reskey_t; typedef struct { int type; union { uint64_t jobid; char* wname; xce_reskey_t* reskey; } condition; } xce_match_t; typedef struct { int table; int nrows; void* rows; } dataset_t; typedef struct { int role; int data_which; union { hostattrs_t* attrs; } data; } xce_joindata_t; typedef struct { char* clustername; int n_confvars; xce_config_t** confvars; int n_resources; xce_resource_t** resources; int n_queues; xce_queue_t** queues; int n_ugroups; xce_group_config_t** ugroups; int n_hgroups; xce_group_config_t** hgroups; int nresvals; xce_val_with_idx_t** resvals; int nlimits; xce_limit_config_t** limits; int nhproviders; scaler_config_t** hproviders; } xce_conf4sched_t; typedef struct { char* clustername; int n_confvars; xce_config_t** confvars; } xce_conf4worker_t; typedef struct { int data_which; union { xce_conf4sched_t* conf4sched; xce_conf4worker_t* conf4worker; cluster_config_t* clusterconfig; } data; } xce_configdata_t; typedef struct { int n_total; int pos; int count; xce_job_t** jobs; } xce_jobs_data_t; typedef struct { int n_total; int pos; int count; xce_worker_t** workers; } xce_workers_data_t; typedef struct { int n_total; int pos; int count; xce_resource_t** resources; } xce_resource_data_t; typedef struct { int n_total; int pos; int count; xce_resval_t** vals; } xce_resval_data_t; typedef struct { int count; xce_resval_t** vals; } xce_resval_list_t; typedef struct { uint64_t jobid; int npids; int* pids; int npgids; int* pgids; int count; xce_rusage_t** usages; } xce_job_rusages_t; typedef struct { int table; union { xce_jobs_data_t* jobs; xce_workers_data_t* workers; xce_resource_data_t* resources; xce_resval_data_t* resvals; } data; } xce_data_t; typedef struct { int table; xce_match_t* condition; } xce_get_t; typedef struct { int event; union { job_pidinfo_t* pidinfo; job_failinfo_t* failinfo; job_failinfo_t* dispatchfail; xce_jobfinish_t* finishinfo; uint64_t sched_start_job; uint64_t sched_exit_job; uint64_t sched_fail_job; xce_job_t* sched_update_job; xce_resval_list_t* sched_update_resvals; uint64_t stopped_job; uint64_t resumed_job; xce_ckptinfo_t* ckptinfo; xce_queue_t* sched_update_queue; xce_task_pidinfo_t* taskinfo; xce_task_failinfo_t* taskfailinfo; xce_task_finish_t* taskfinish; uint64_t pdone_job; xce_job_rusages_t* sched_job_rusages; xce_job_t* update_job; } data; } xce_notify_data_t; typedef struct { int table; union { xce_resval_list_t* resvals; xce_job_rusages_t* jobrusages; } data; } xce_update_data_t; typedef struct { uint64_t seq; uint32_t opcode; int32_t status; int data_which; union { char* debugmsg; uint64_t jobid; xce_data_t* getdata; xce_clusterconf_t* clusterconf; } data; } xce_reply_t; typedef struct { uint32_t opcode; uint64_t seq; xce_peerinfo_t* from; int body_which; union { xce_reply_t* replymsg; char* hellomsg; xce_joindata_t* joinmsg; xce_configdata_t* configpushmsg; xce_data_t* pushmsg; xce_get_t* getmsg; dataset_t* datamsg; xce_job_dispatch_t* dispatchmsg; xce_job_exec_t* jobstartmsg; xce_notify_data_t* notifymsg; xce_job_submit_t* jobsubmsg; xce_update_data_t* updatemsg; xce_jobctrl_t* jobctrlmsg; xce_queuectrl_t* queuectrlmsg; xce_taskrun_t* runtaskmsg; xce_preason_set_t* preasonmsg; xce_clear_reason_t* clrpreasonmsg; xce_hostctrl_t* hostctrlmsg; } body; } xce_request_t; #endif