00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00026 #ifndef GLOBUS_GRAM_CLIENT_H
00027 #define GLOBUS_GRAM_CLIENT_H
00028
00029
00030 #include "globus_common.h"
00031 #include "globus_io.h"
00032 #include "globus_gram_protocol_constants.h"
00033
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037
00038 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00039
00043 #endif
00044
00054
00055
00056
00057
00058
00096 typedef void (* globus_gram_client_callback_func_t)(
00097 void * user_callback_arg,
00098 char * job_contact,
00099 int state,
00100 int errorcode);
00101
00113 typedef struct globus_gram_client_job_info_s
00114 {
00118 globus_hashtable_t extensions;
00122 char * job_contact;
00126 int job_state;
00130 int protocol_error_code;
00131 }
00132 globus_gram_client_job_info_t;
00133
00159 typedef void (* globus_gram_client_info_callback_func_t)(
00160 void * user_callback_arg,
00161 const char * job_contact,
00162 globus_gram_client_job_info_t * job_info);
00163
00173 typedef void * globus_gram_client_attr_t;
00174
00175
00185 #define GLOBUS_GRAM_CLIENT_NO_ATTR (globus_gram_client_attr_t) NULL
00186
00221 typedef void (* globus_gram_client_nonblocking_func_t)(
00222 void * user_callback_arg,
00223 globus_gram_protocol_error_t operation_failure_code,
00224 const char * job_contact,
00225 globus_gram_protocol_job_state_t job_state,
00226 globus_gram_protocol_error_t job_failure_code);
00227
00228
00235
00236
00237
00238 int
00239 globus_gram_client_callback_allow(
00240 globus_gram_client_callback_func_t callback_func,
00241 void * user_callback_arg,
00242 char ** callback_contact);
00243
00244
00245 int
00246 globus_gram_client_info_callback_allow(
00247 globus_gram_client_info_callback_func_t
00248 callback_func,
00249 void * user_callback_arg,
00250 char ** callback_contact);
00251
00252 int
00253 globus_gram_client_register_job_request(
00254 const char * resource_manager_contact,
00255 const char * description,
00256 int job_state_mask,
00257 const char * callback_contact,
00258 globus_gram_client_attr_t attr,
00259 globus_gram_client_nonblocking_func_t
00260 register_callback,
00261 void * register_callback_arg);
00262
00263 int
00264 globus_gram_client_job_request(
00265 const char * resource_manager_contact,
00266 const char * description,
00267 int job_state_mask,
00268 const char * callback_contact,
00269 char ** job_contact);
00270
00271 int
00272 globus_gram_client_register_job_request_with_info(
00273 const char * resource_manager_contact,
00274 const char * description,
00275 int job_state_mask,
00276 const char * callback_contact,
00277 globus_gram_client_attr_t attr,
00278 globus_gram_client_info_callback_func_t
00279 callback,
00280 void * callback_arg);
00281
00282 int
00283 globus_gram_client_job_request_with_info(
00284 const char * resource_manager_contact,
00285 const char * description,
00286 int job_state_mask,
00287 const char * callback_contact,
00288 char ** job_contact,
00289 globus_gram_client_job_info_t * info);
00290
00291 int
00292 globus_gram_client_register_job_cancel(
00293 const char * job_contact,
00294 globus_gram_client_attr_t attr,
00295 globus_gram_client_nonblocking_func_t
00296 register_callback,
00297 void * register_callback_arg);
00298
00299 int
00300 globus_gram_client_job_cancel(
00301 const char * job_contact);
00302
00303 int
00304 globus_gram_client_register_job_status(
00305 const char * job_contact,
00306 globus_gram_client_attr_t attr,
00307 globus_gram_client_nonblocking_func_t
00308 register_callback,
00309 void * register_callback_arg);
00310
00311 int
00312 globus_gram_client_register_job_status_with_info(
00313 const char * job_contact,
00314 globus_gram_client_attr_t attr,
00315 globus_gram_client_info_callback_func_t
00316 info_callback,
00317 void * callback_arg);
00318
00319
00320 int
00321 globus_gram_client_job_refresh_credentials(
00322 char * job_contact,
00323 gss_cred_id_t creds);
00324
00325 int
00326 globus_gram_client_register_job_refresh_credentials(
00327 char * job_contact,
00328 gss_cred_id_t creds,
00329 globus_gram_client_attr_t attr,
00330 globus_gram_client_nonblocking_func_t
00331 register_callback,
00332 void * register_callback_arg);
00333
00334 int
00335 globus_gram_client_job_status(
00336 const char * job_contact,
00337 int * job_status,
00338 int * failure_code);
00339
00340 int
00341 globus_gram_client_job_status_with_info(
00342 const char * job_contact,
00343 globus_gram_client_job_info_t * job_info);
00344
00345 int
00346 globus_gram_client_register_job_signal(
00347 const char * job_contact,
00348 globus_gram_protocol_job_signal_t signal,
00349 const char * signal_arg,
00350 globus_gram_client_attr_t attr,
00351 globus_gram_client_nonblocking_func_t
00352 register_callback,
00353 void * register_callback_arg);
00354
00355 int
00356 globus_gram_client_job_signal(
00357 const char * job_contact,
00358 globus_gram_protocol_job_signal_t signal,
00359 const char * signal_arg,
00360 int * job_status,
00361 int * failure_code);
00362
00363
00364 int
00365 globus_gram_client_register_job_callback_registration(
00366 const char * job_contact,
00367 int job_state_mask,
00368 const char * callback_contact,
00369 globus_gram_client_attr_t attr,
00370 globus_gram_client_nonblocking_func_t
00371 register_callback,
00372 void * register_callback_arg);
00373
00374 int
00375 globus_gram_client_job_callback_register(
00376 const char * job_contact,
00377 int job_state_mask,
00378 const char * callback_contact,
00379 int * job_status,
00380 int * failure_code);
00381
00382 int
00383 globus_gram_client_register_job_callback_unregistration(
00384 const char * job_contact,
00385 const char * callback_contact,
00386 globus_gram_client_attr_t attr,
00387 globus_gram_client_nonblocking_func_t
00388 register_callback,
00389 void * register_callback_arg);
00390
00391 int
00392 globus_gram_client_job_callback_unregister(
00393 const char * job_contact,
00394 const char * callback_contact,
00395 int * job_status,
00396 int * failure_code);
00397
00398 int
00399 globus_gram_client_callback_disallow(
00400 char * callback_contact);
00401
00402 int
00403 globus_gram_client_job_contact_free(
00404 char * job_contact);
00405
00406 const char *
00407 globus_gram_client_error_string(
00408 int error_code);
00409
00410 int
00411 globus_gram_client_version(void);
00412
00413 int
00414 globus_gram_client_set_credentials(gss_cred_id_t new_credentials);
00415
00416 int
00417 globus_gram_client_ping(
00418 const char * resource_manager_contact);
00419
00420 int
00421 globus_gram_client_register_ping(
00422 const char * resource_manager_contact,
00423 globus_gram_client_attr_t attr,
00424 globus_gram_client_nonblocking_func_t
00425 register_callback,
00426 void * register_callback_arg);
00427
00428 int
00429 globus_gram_client_get_jobmanager_version(
00430 const char * resource_manager_contact,
00431 globus_hashtable_t * extensions);
00432
00433 int
00434 globus_gram_client_register_get_jobmanager_version(
00435 const char * resource_manager_contact,
00436 globus_gram_client_attr_t attr,
00437 globus_gram_client_info_callback_func_t
00438 info_callback,
00439 void * callback_arg);
00440
00441 void
00442 globus_gram_client_debug(void);
00443
00449 int
00450 globus_gram_client_attr_init(
00451 globus_gram_client_attr_t * attr);
00452 int
00453 globus_gram_client_attr_destroy(
00454 globus_gram_client_attr_t * attr);
00455
00456 int
00457 globus_gram_client_attr_set_credential(
00458 globus_gram_client_attr_t attr,
00459 gss_cred_id_t credential);
00460
00461 int
00462 globus_gram_client_attr_get_credential(
00463 globus_gram_client_attr_t attr,
00464 gss_cred_id_t * credential);
00465
00466 int
00467 globus_gram_client_attr_set_delegation_mode(
00468 globus_gram_client_attr_t attr,
00469 globus_io_secure_delegation_mode_t mode);
00470
00471 int
00472 globus_gram_client_attr_get_delegation_mode(
00473 globus_gram_client_attr_t attr,
00474 globus_io_secure_delegation_mode_t *mode);
00475
00476 void
00477 globus_gram_client_job_info_destroy(
00478 globus_gram_client_job_info_t * info);
00479
00480 #define GLOBUS_GRAM_CLIENT_MODULE (&globus_gram_client_module)
00481
00482 extern globus_module_descriptor_t globus_gram_client_module;
00483
00484 #ifdef __cplusplus
00485 }
00486 #endif
00487
00488 #endif