Grid Community Toolkit  6.2.1653033972 (tag: v6.2.20220524)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
Message Unpacking

Message Unpacking. More...

Functions

int globus_gram_protocol_unpack_job_request (const globus_byte_t *query, globus_size_t querysize, int *job_state_mask, char **callback_url, char **description)
 Unpack a GRAM Job Request. More...
 
int globus_gram_protocol_unpack_job_request_reply (const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact)
 Unpack a GRAM reply message. More...
 
int globus_gram_protocol_unpack_job_request_reply_with_extensions (const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact, globus_hashtable_t *extensions)
 Unpack a GRAM reply message, parsing all extensions. More...
 
int globus_gram_protocol_unpack_status_request (const globus_byte_t *query, globus_size_t querysize, char **status_request)
 Unpack a GRAM query message. More...
 
int globus_gram_protocol_unpack_status_reply (const globus_byte_t *reply, globus_size_t replysize, int *job_status, int *failure_code, int *job_failure_code)
 Unpack a GRAM query reply. More...
 
int globus_gram_protocol_unpack_status_reply_with_extensions (const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)
 Unpack a GRAM query reply with extensions. More...
 
int globus_gram_protocol_unpack_status_update_message (const globus_byte_t *reply, globus_size_t replysize, char **job_contact, int *status, int *failure_code)
 Unpack a GRAM status update message. More...
 
int globus_gram_protocol_unpack_status_update_message_with_extensions (const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)
 Unpack a GRAM status update message with extensions. More...
 
void globus_gram_protocol_hash_destroy (globus_hashtable_t *message_hash)
 

Detailed Description

Message Unpacking.

Function Documentation

void globus_gram_protocol_hash_destroy ( globus_hashtable_t *  message_hash)

Destroy message attribute hash

Parameters
message_hashHashtable of globus_gram_protocol_extension_t * values to destroy
int globus_gram_protocol_unpack_job_request ( const globus_byte_t query,
globus_size_t  querysize,
int *  job_state_mask,
char **  callback_url,
char **  description 
)

Unpack a GRAM Job Request.

The globus_gram_protocol_unpack_job_request() function parses the job request message packed in the query message and returns copies of the standard message attributes in the job_state_mask, callback_url, and description parameters.

Parameters
queryThe unframed job request message to parse.
querysizeThe length of the job request message string.
job_state_maskA pointer to an integer to be set to the job state mask from the job request.
callback_urlA pointer to be set with a copy of the URL of the callback contact to be registered for this job request. The caller must free this memory by calling free().
descriptionA pointer to be set to a copy of the job description RSL string for this job request. The caller must free this memory by calling free().
Returns
Upon success, globus_gram_protocol_unpack_job_request() will return GLOBUS_SUCCESS and modify the job_state_mask, callback_url, and description parameters to values extracted from the message in query. If an error occurs, an integer error code will be returned and the values of job_state_mask, callback_url, and description will be undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_job_request_reply ( const globus_byte_t reply,
globus_size_t  replysize,
int *  status,
char **  job_contact 
)

Unpack a GRAM reply message.

The globus_gram_protocol_unpack_job_request_reply() function parses the reply message packed in the reply message and returns copies of the standard message attributes in the status and job_contact parameters.

Parameters
replyThe unframed job reply message to parse.
replysizeThe length of the reply string.
statusA pointer to an integer to be set to the failure code associated with the job request. This may be GLOBUS_SUCCESS, if the job request was successful.
job_contactA pointer to a string to be set to the job contact string. This may set to NULL if the job request failed. If globus_gram_protocol_unpack_job_request_reply() returns GLOBUS_SUCCESS, then the caller must free this string using free().
Returns
Upon success, globus_gram_protocol_unpack_job_request_reply() returns GLOBUS_SUCCESS and modifies the status and job_contact parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by status and job_contact are undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAN_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILEDOut of memory
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_job_request_reply_with_extensions ( const globus_byte_t reply,
globus_size_t  replysize,
int *  status,
char **  job_contact,
globus_hashtable_t *  extensions 
)

Unpack a GRAM reply message, parsing all extensions.

The globus_gram_protocol_unpack_job_request_reply_with_extensions() function parses the reply message packed in the reply message parameter and returns copies of the standard message attributes in the status and job_contact parameters, and all other extension attributes in the hashtable pointed to by extensions. Each entry in the hashtable will be keyed by the attribute name and the value will be a pointer to a globus_gram_protocol_extension_t structure.

Parameters
statusA pointer to an integer to be set to the failure code associated with the job request. This may be GLOBUS_SUCCESS, if the job request was successful.
job_contactA pointer to a string to be set to the job contact string. This may set to NULL if the job request failed. If globus_gram_protocol_unpack_job_request_reply_with_extensions() returns GLOBUS_SUCCESS, then the caller must free this string using free().
extensionsA pointer to be set to a hash table containing the names and values of all protocol extensions present in the response message. If globus_gram_protocol_unpack_job_request_reply_with_extensions() returns GLOBUS_SUCCESS, the caller must free this hash table and its values by calling globus_gram_protocol_hash_destroy().
replyThe unframed job reply message to parse.
replysizeThe length of the reply string.
Returns
Upon success, globus_gram_protocol_unpack_job_request_reply_with_extensions() returns GLOBUS_SUCCESS and modifies the status, job_contact, and extensions to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by status, job_contact, and extensions are undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAN_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILEDOut of memory
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_status_reply ( const globus_byte_t reply,
globus_size_t  replysize,
int *  job_status,
int *  failure_code,
int *  job_failure_code 
)

Unpack a GRAM query reply.

The globus_gram_protocol_unpack_status_reply() function parses the message packed in the reply parameter and sets the current job state, protocol failure code, and job failure code values in its output parameters.

Parameters
replyThe unframed reply message to parse.
replysizeThe length of the reply message.
job_statusA pointer to an integer to be set to the job's current job state.
failure_codeA pointer to an integer to be set to the failure code associated with the query request. This may be GLOBUS_SUCCESS, if the request was successful.
job_failure_codeA pointer to an integer to be set to the failure code for the job, if the job_status is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED.
Returns
Upon success, globus_gram_protocol_unpack_status_reply() returns GLOBUS_SUCCESS and modifies the job_status, failure_code, and job_failure_code parameters to point to the value described above. If an error occurs, an integer error code is returned and the values pointed to by job_status, failure_code, and job_failure_code are undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
int globus_gram_protocol_unpack_status_reply_with_extensions ( const globus_byte_t reply,
globus_size_t  replysize,
globus_hashtable_t *  extensions 
)

Unpack a GRAM query reply with extensions.

The globus_gram_protocol_unpack_status_reply_with_extensions() function parses the message packed in the reply parameter, storing all attributes and values in a hash table. The extensions parameter is modified to point to that hash table. The caller of globus_gram_protocol_unpack_status_reply_with_extensions() must free that hash table by calling globus_gram_protocol_hash_destroy().

Parameters
replyThe unframed reply message to parse.
replysizeThe length of the reply message.
extensionsA pointer to be set to a hash table containing the names and values of all protocol attributes present in the reply message. If globus_gram_protocol_unpack_status_reply_with_extensions() returns GLOBUS_SUCCESS, the caller must free this hash table and its values by calling globus_gram_protocol_hash_destroy().
Returns
Upon success, globus_gram_protocol_unpack_status_reply_with_extensions() returns GLOBUS_SUCCESS and modifies the extensions parameter to point to the value described above. If an error occurs, an integer error code is returned and the value pointed to by extensions is undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_status_request ( const globus_byte_t query,
globus_size_t  querysize,
char **  status_request 
)

Unpack a GRAM query message.

The globus_gram_protocol_unpack_status_request() function parses the message packed in the query parameter and returns a copy of the message in the status_request parameter.

Parameters
queryThe unframed query message to parse.
querysizeThe length of the query string.
status_requestA pointer to a string to be set to the query value. The caller must free this string using free().
Returns
Upon success, globus_gram_protocol_unpack_status_request() returns GLOBUS_SUCCESS and modifies the status_request parameter to point to the value described above. If an error occurs, an integer error code is returned and the value pointed to by status_request is undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILEDOut of memory
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_status_update_message ( const globus_byte_t reply,
globus_size_t  replysize,
char **  job_contact,
int *  status,
int *  failure_code 
)

Unpack a GRAM status update message.

The globus_gram_protocol_unpack_status_update_message() function parses the message packed in the reply parameter, storing the standard message attribute values in its return parameters job_contact, status, and failure_code. The caller is responsible for freeing the job_contact value.

Parameters
replyThe unframed reply message to parse.
replysizeThe length of the reply message.
job_contactAn output parameter to be set to the job contact string. If globus_gram_protocol_unpack_status_update_message() returns GLOBUS_SUCCESS, then the caller must free this string using free().
statusAn output parameter to be set to the integer value of the job's current job state.
failure_codeAn output parameter to be set to the integer failure code for the job if the job_status is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED.
Returns
Upon success, globus_gram_protocol_unpack_status_update_message() returns GLOBUS_SUCCESS and modifies the job_contact, status, and failure_code parameters as described above. If an error occurs, an integer error code is returned and the values pointed to by the job_contact, status, and failure_code parameters are undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETERNull parameter
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILEDOut of memory
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch
int globus_gram_protocol_unpack_status_update_message_with_extensions ( const globus_byte_t reply,
globus_size_t  replysize,
globus_hashtable_t *  extensions 
)

Unpack a GRAM status update message with extensions.

The globus_gram_protocol_unpack_status_update_message_with_extensions() function parses the message packed in the reply parameter, storing the message attribute values in its return parameter extensions. The caller is responsible for freeing the extensions hash table by calling globus_gram_protocol_hash_destroy().

Parameters
replyThe unframed reply message to parse.
replysizeThe length of the reply message.
extensionsAn output parameter which will be initialized to a hashtable containing the message attributes. The caller must destroy this hashtable calling globus_gram_protocol_hash_destroy().
Returns
Upon success, globus_gram_protocol_unpack_status_update_message_with_extensions() returns GLOBUS_SUCCESS and modifies the extensions parameter as described above. If an error occurs, an integer error code is returned and the value pointed to by the extensions parameters is undefined.
Return values
GLOBUS_SUCCESSSuccess
GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILEDUnpack failed
GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILEDMalloc failed
GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCHVersion mismatch