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
00052
00053
00054
00055
00056
00093 typedef void (* globus_gram_client_callback_func_t)(
00094 void * user_callback_arg,
00095 char * job_contact,
00096 int state,
00097 int errorcode);
00098
00110 typedef struct globus_gram_client_job_info_s
00111 {
00115 globus_hashtable_t extensions;
00119 char * job_contact;
00123 int job_state;
00127 int protocol_error_code;
00128 }
00129 globus_gram_client_job_info_t;
00130
00156 typedef void (* globus_gram_client_info_callback_func_t)(
00157 void * user_callback_arg,
00158 const char * job_contact,
00159 globus_gram_client_job_info_t * job_info);
00160
00170 typedef void * globus_gram_client_attr_t;
00171
00172
00182 #define GLOBUS_GRAM_CLIENT_NO_ATTR (globus_gram_client_attr_t) NULL
00183
00218 typedef void (* globus_gram_client_nonblocking_func_t)(
00219 void * user_callback_arg,
00220 globus_gram_protocol_error_t operation_failure_code,
00221 const char * job_contact,
00222 globus_gram_protocol_job_state_t job_state,
00223 globus_gram_protocol_error_t job_failure_code);
00224
00225
00231
00232
00233
00234 int
00235 globus_gram_client_callback_allow(
00236 globus_gram_client_callback_func_t callback_func,
00237 void * user_callback_arg,
00238 char ** callback_contact);
00239
00240
00241 int
00242 globus_gram_client_info_callback_allow(
00243 globus_gram_client_info_callback_func_t
00244 callback_func,
00245 void * user_callback_arg,
00246 char ** callback_contact);
00247
00248 int
00249 globus_gram_client_register_job_request(
00250 const char * resource_manager_contact,
00251 const char * description,
00252 int job_state_mask,
00253 const char * callback_contact,
00254 globus_gram_client_attr_t attr,
00255 globus_gram_client_nonblocking_func_t
00256 register_callback,
00257 void * register_callback_arg);
00258
00259 int
00260 globus_gram_client_job_request(
00261 const char * resource_manager_contact,
00262 const char * description,
00263 int job_state_mask,
00264 const char * callback_contact,
00265 char ** job_contact);
00266
00267 int
00268 globus_gram_client_register_job_request_with_info(
00269 const char * resource_manager_contact,
00270 const char * description,
00271 int job_state_mask,
00272 const char * callback_contact,
00273 globus_gram_client_attr_t attr,
00274 globus_gram_client_info_callback_func_t
00275 callback,
00276 void * callback_arg);
00277
00278 int
00279 globus_gram_client_job_request_with_info(
00280 const char * resource_manager_contact,
00281 const char * description,
00282 int job_state_mask,
00283 const char * callback_contact,
00284 char ** job_contact,
00285 globus_gram_client_job_info_t * info);
00286
00287 int
00288 globus_gram_client_register_job_cancel(
00289 const char * job_contact,
00290 globus_gram_client_attr_t attr,
00291 globus_gram_client_nonblocking_func_t
00292 register_callback,
00293 void * register_callback_arg);
00294
00295 int
00296 globus_gram_client_job_cancel(
00297 const char * job_contact);
00298
00299 int
00300 globus_gram_client_register_job_status(
00301 const char * job_contact,
00302 globus_gram_client_attr_t attr,
00303 globus_gram_client_nonblocking_func_t
00304 register_callback,
00305 void * register_callback_arg);
00306
00307 int
00308 globus_gram_client_register_job_status_with_info(
00309 const char * job_contact,
00310 globus_gram_client_attr_t attr,
00311 globus_gram_client_info_callback_func_t
00312 info_callback,
00313 void * callback_arg);
00314
00315
00316 int
00317 globus_gram_client_job_refresh_credentials(
00318 char * job_contact,
00319 gss_cred_id_t creds);
00320
00321 int
00322 globus_gram_client_register_job_refresh_credentials(
00323 char * job_contact,
00324 gss_cred_id_t creds,
00325 globus_gram_client_attr_t attr,
00326 globus_gram_client_nonblocking_func_t
00327 register_callback,
00328 void * register_callback_arg);
00329
00330 int
00331 globus_gram_client_job_status(
00332 const char * job_contact,
00333 int * job_status,
00334 int * failure_code);
00335
00336 int
00337 globus_gram_client_job_status_with_info(
00338 const char * job_contact,
00339 globus_gram_client_job_info_t * job_info);
00340
00341 int
00342 globus_gram_client_register_job_signal(
00343 const char * job_contact,
00344 globus_gram_protocol_job_signal_t signal,
00345 const char * signal_arg,
00346 globus_gram_client_attr_t attr,
00347 globus_gram_client_nonblocking_func_t
00348 register_callback,
00349 void * register_callback_arg);
00350
00351 int
00352 globus_gram_client_job_signal(
00353 const char * job_contact,
00354 globus_gram_protocol_job_signal_t signal,
00355 const char * signal_arg,
00356 int * job_status,
00357 int * failure_code);
00358
00359
00360 int
00361 globus_gram_client_register_job_callback_registration(
00362 const char * job_contact,
00363 int job_state_mask,
00364 const char * callback_contact,
00365 globus_gram_client_attr_t attr,
00366 globus_gram_client_nonblocking_func_t
00367 register_callback,
00368 void * register_callback_arg);
00369
00370 int
00371 globus_gram_client_job_callback_register(
00372 const char * job_contact,
00373 int job_state_mask,
00374 const char * callback_contact,
00375 int * job_status,
00376 int * failure_code);
00377
00378 int
00379 globus_gram_client_register_job_callback_unregistration(
00380 const char * job_contact,
00381 const char * callback_contact,
00382 globus_gram_client_attr_t attr,
00383 globus_gram_client_nonblocking_func_t
00384 register_callback,
00385 void * register_callback_arg);
00386
00387 int
00388 globus_gram_client_job_callback_unregister(
00389 const char * job_contact,
00390 const char * callback_contact,
00391 int * job_status,
00392 int * failure_code);
00393
00394 int
00395 globus_gram_client_callback_disallow(
00396 char * callback_contact);
00397
00398 int
00399 globus_gram_client_job_contact_free(
00400 char * job_contact);
00401
00402 const char *
00403 globus_gram_client_error_string(
00404 int error_code);
00405
00406 int
00407 globus_gram_client_version(void);
00408
00409 int
00410 globus_gram_client_set_credentials(gss_cred_id_t new_credentials);
00411
00412 int
00413 globus_gram_client_ping(
00414 const char * resource_manager_contact);
00415
00416 int
00417 globus_gram_client_register_ping(
00418 const char * resource_manager_contact,
00419 globus_gram_client_attr_t attr,
00420 globus_gram_client_nonblocking_func_t
00421 register_callback,
00422 void * register_callback_arg);
00423
00424 int
00425 globus_gram_client_get_jobmanager_version(
00426 const char * resource_manager_contact,
00427 globus_hashtable_t * extensions);
00428
00429 int
00430 globus_gram_client_register_get_jobmanager_version(
00431 const char * resource_manager_contact,
00432 globus_gram_client_attr_t attr,
00433 globus_gram_client_info_callback_func_t
00434 info_callback,
00435 void * callback_arg);
00436
00437 void
00438 globus_gram_client_debug(void);
00439
00444 int
00445 globus_gram_client_attr_init(
00446 globus_gram_client_attr_t * attr);
00447 int
00448 globus_gram_client_attr_destroy(
00449 globus_gram_client_attr_t * attr);
00450
00451 int
00452 globus_gram_client_attr_set_credential(
00453 globus_gram_client_attr_t attr,
00454 gss_cred_id_t credential);
00455
00456 int
00457 globus_gram_client_attr_get_credential(
00458 globus_gram_client_attr_t attr,
00459 gss_cred_id_t * credential);
00460
00461 int
00462 globus_gram_client_attr_set_delegation_mode(
00463 globus_gram_client_attr_t attr,
00464 globus_io_secure_delegation_mode_t mode);
00465
00466 int
00467 globus_gram_client_attr_get_delegation_mode(
00468 globus_gram_client_attr_t attr,
00469 globus_io_secure_delegation_mode_t *mode);
00470
00471 void
00472 globus_gram_client_job_info_destroy(
00473 globus_gram_client_job_info_t * info);
00474
00475 #define GLOBUS_GRAM_CLIENT_MODULE (&globus_gram_client_module)
00476
00477 extern globus_module_descriptor_t globus_gram_client_module;
00478
00479 #ifdef __cplusplus
00480 }
00481 #endif
00482
00483 #endif