00001
00002
00003
00004 #ifndef ROOT_XProofProtocol
00005 #define ROOT_XProofProtocol
00006
00007 #ifdef __CINT__
00008 #define __attribute__(x)
00009 #endif
00010
00011 #include "XProtocol/XProtocol.hh"
00012
00013 #define XPD_DEF_PORT 1093
00014
00015
00016
00017
00018 #define kXP_MasterServer 1
00019 #define kXR_SlaveServer 0
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 enum XProofRequestTypes {
00032 kXP_login = 3101,
00033 kXP_auth = 3102,
00034 kXP_create = 3103,
00035 kXP_destroy = 3104,
00036 kXP_attach = 3105,
00037 kXP_detach = 3106,
00038 kXP_urgent = 3111,
00039 kXP_sendmsg = 3112,
00040 kXP_admin = 3113,
00041 kXP_interrupt = 3114,
00042 kXP_ping = 3115,
00043 kXP_cleanup = 3116,
00044 kXP_readbuf = 3117,
00045 kXP_touch = 3118,
00046 kXP_ctrlc = 3119,
00047
00048 kXP_Undef = 3120
00049 };
00050
00051
00052 #define XPD_VERSION 0x010600
00053
00054
00055 #define kXPD_Admin 4
00056 #define kXPD_Internal 3
00057 #define kXPD_ClientMaster 2
00058 #define kXPD_MasterMaster 1
00059 #define kXPD_MasterWorker 0
00060 #define kXPD_AnyConnect -1
00061
00062
00063 #define kXPD_TopMaster 2
00064 #define kXPD_Master 1
00065 #define kXPD_Worker 0
00066 #define kXPD_AnyServer -1
00067
00068
00069 #define kXPD_OpModeOpen 0
00070 #define kXPD_OpModeControlled 1
00071
00072
00073 enum EResourceType {
00074 kRTNone = -1,
00075 kRTStatic = 0,
00076 kRTDynamic = 1
00077 };
00078
00079
00080 enum EStaticSelOpt {
00081 kSSORoundRobin = 0,
00082 kSSORandom = 1,
00083 kSSOLoadBased = 2
00084 };
00085
00086
00087
00088 enum EAdminMsgType {
00089 kQuerySessions = 1000,
00090 kSessionTag = 1001,
00091 kSessionAlias = 1002,
00092 kGetWorkers = 1003,
00093 kQueryWorkers = 1004,
00094 kCleanupSessions = 1005,
00095 kQueryLogPaths = 1006,
00096 kReadBuffer = 1007,
00097 kQueryROOTVersions = 1008,
00098 kROOTVersion = 1009,
00099 kGroupProperties = 1010,
00100 kSendMsgToUser = 1011,
00101 kReleaseWorker = 1012,
00102 kExec = 1013,
00103 kGetFile = 1014,
00104 kPutFile = 1015,
00105 kCpFile = 1016,
00106
00107 kUndef = 1017
00108 };
00109
00110
00111 enum EAdminExecType {
00112 kRm = 0,
00113 kLs = 1,
00114 kMore = 2,
00115 kGrep = 3,
00116 kTail = 4,
00117 kMd5sum = 5,
00118 kStat = 6,
00119 kFind = 7
00120 };
00121
00122
00123 enum XProofSchedOpts {
00124 kXPD_sched_off = 0,
00125 kXPD_sched_local = 1,
00126 kXPD_sched_central = 2
00127 };
00128
00129
00130 enum XProofSessionStatus {
00131 kXPD_idle = 0,
00132 kXPD_running = 1,
00133 kXPD_shutdown = 2,
00134 kXPD_enqueued = 3,
00135 kXPD_unknown = 4
00136 };
00137
00138
00139 #define kXPD_internal 0x1
00140 #define kXPD_async 0x2
00141 #define kXPD_startprocess 0x4
00142 #define kXPD_setidle 0x8
00143 #define kXPD_fb_prog 0x10
00144 #define kXPD_logmsg 0x20
00145 #define kXPD_querynum 0x40
00146 #define kXPD_process 0x80
00147
00148
00149 const char* const XPD_GW_Failed = "|failed|";
00150 const char* const XPD_GW_QueryEnqueued = "|enqueued|";
00151 const char* const XPD_GW_Static = "static:";
00152
00153
00154
00155
00156
00157 enum XProofResponseType {
00158 kXP_ok = 0,
00159 kXP_oksofar = 4100,
00160 kXP_attn,
00161 kXP_authmore,
00162 kXP_error,
00163 kXP_wait
00164 };
00165
00166
00167
00168
00169 enum XProofActionCode {
00170 kXPD_msg = 5100,
00171 kXPD_ping,
00172 kXPD_interrupt,
00173 kXPD_feedback,
00174 kXPD_srvmsg,
00175 kXPD_msgsid,
00176 kXPD_errmsg,
00177 kXPD_timer,
00178 kXPD_urgent,
00179 kXPD_flush,
00180 kXPD_inflate,
00181 kXPD_priority,
00182 kXPD_wrkmortem,
00183 kXPD_touch,
00184 kXPD_resume,
00185 kXPD_clusterinfo
00186 };
00187
00188
00189
00190
00191
00192 enum XProofQueryStatus {
00193 kXP_pending = 0,
00194 kXP_done,
00195 kXP_processing,
00196 kXP_aborted
00197 };
00198
00199
00200
00201
00202
00203 enum XPErrorCode {
00204 kXP_ArgInvalid = 3100,
00205 kXP_ArgMissing,
00206 kXP_ArgTooLong,
00207 kXP_InvalidRequest,
00208 kXP_IOError,
00209 kXP_NoMemory,
00210 kXP_NoSpace,
00211 kXP_NotAuthorized,
00212 kXP_NotFound,
00213 kXP_ServerError,
00214 kXP_Unsupported,
00215 kXP_noserver,
00216 kXP_nosession,
00217 kXP_nomanager,
00218 kXP_reconnecting,
00219 kXP_TooManySess
00220 };
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236 struct XPClientProofRequest {
00237 kXR_char streamid[2];
00238 kXR_unt16 requestid;
00239 kXR_int32 sid;
00240 kXR_int32 int1;
00241 kXR_int32 int2;
00242 kXR_int32 int3;
00243 kXR_int32 dlen;
00244 };
00245
00246 struct XPClientReadbufRequest {
00247 kXR_char streamid[2];
00248 kXR_unt16 requestid;
00249 kXR_int32 len;
00250 kXR_int64 ofs;
00251 kXR_int32 int1;
00252 kXR_int32 dlen;
00253 };
00254
00255 struct XPClientSendRcvRequest {
00256 kXR_char streamid[2];
00257 kXR_unt16 requestid;
00258 kXR_int32 sid;
00259 kXR_int32 opt;
00260 kXR_int32 cid;
00261 kXR_char reserved[4];
00262 kXR_int32 dlen;
00263 };
00264
00265 struct XPClientArchiveRequest {
00266 kXR_char streamid[2];
00267 kXR_unt16 requestid;
00268 kXR_int32 sid;
00269 kXR_int32 opt;
00270 kXR_char reserved[8];
00271 kXR_int32 dlen;
00272 };
00273
00274 struct XPClientInterruptRequest {
00275 kXR_char streamid[2];
00276 kXR_unt16 requestid;
00277 kXR_int32 sid;
00278 kXR_int32 type;
00279 kXR_char reserved[8];
00280 kXR_int32 dlen;
00281 };
00282
00283 typedef union {
00284 struct ClientLoginRequest login;
00285 struct ClientAuthRequest auth;
00286 struct XPClientProofRequest proof;
00287 struct XPClientReadbufRequest readbuf;
00288 struct XPClientSendRcvRequest sendrcv;
00289 struct XPClientArchiveRequest archive;
00290 struct XPClientInterruptRequest interrupt;
00291 struct ClientRequestHdr header;
00292 } XPClientRequest;
00293
00294
00295
00296
00297 #endif