<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <!-- THIS FILE IS AUTOMATICALLY GENERATED FROM THE GLOBUS SOURCE CODE DO NOT MODIFY. --> <title>Globus Reference Manual</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head> <body> <!-- Generated by Doxygen 1.7.4 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> </ul> </div> </div> <div id="side-nav" class="ui-resizable side-nav-resizable"> <div id="nav-tree"> <div id="nav-tree-contents"> </div> </div> <div id="splitbar" style="-moz-user-select:none;" class="ui-resizable-handle"> </div> </div> <script type="text/javascript"> initNavTree('group__globus__gram__protocol__pack.html',''); </script> <div id="doc-content"> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Message Packing</div> </div> <div class="ingroups"><a class="el" href="group__globus__gram__protocol__functions.html">Functions</a></div></div> <div class="contents"> <div class="dynheader"> Collaboration diagram for Message Packing:</div> <div class="dyncontent"> <center><table><tr><td><img src="group__globus__gram__protocol__pack.png" border="0" alt="" usemap="#group____globus____gram____protocol____pack"/> <map name="group____globus____gram____protocol____pack" id="group____globus____gram____protocol____pack"> <area shape="rect" id="node2" href="group__globus__gram__protocol__functions.html" title="Functions" alt="" coords="7,5,84,35"/></map> </td></tr></table></center> </div> <h2><a name="func-members"></a> Functions</h2> <ul> <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f">globus_gram_protocol_pack_job_request</a> (int job_state_mask, const char *callback_url, const char *rsl, globus_byte_t **query, globus_size_t *querysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga38661e5ce3605686330946020f4d921a">globus_gram_protocol_pack_job_request_reply</a> (int status, const char *job_contact, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga870c36c04014e9951a9360d9a90d4485">globus_gram_protocol_pack_job_request_reply_with_extensions</a> (int status, const char *job_contact, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9">globus_gram_protocol_pack_status_request</a> (const char *status_request, globus_byte_t **query, globus_size_t *querysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga016c5b35447ecf9a6c86c062c509c412">globus_gram_protocol_pack_status_reply</a> (int job_status, int failure_code, int job_failure_code, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga5eb14f052e85d85e6b8f02db9e66263a">globus_gram_protocol_pack_status_reply_with_extensions</a> (int job_status, int failure_code, int job_failure_code, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#ga9f9d7d5f6c369cb81acd439643fce83f">globus_gram_protocol_pack_status_update_message</a> (char *job_contact, int status, int failure_code, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#gac1e323a172f8e59639ef5f3855335ed4">globus_gram_protocol_pack_status_update_message_with_extensions</a> (char *job_contact, int status, int failure_code, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize) <li>int <a class="el" href="group__globus__gram__protocol__pack.html#gaae76ed0305e54bc75ccbe3febc66939c">globus_gram_protocol_pack_version_request</a> (char **request, size_t *requestsize) </ul> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga86417f402c997031f6353a70ca3b853f"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_job_request" ref="ga86417f402c997031f6353a70ca3b853f" args="(int job_state_mask, const char *callback_url, const char *rsl, globus_byte_t **query, globus_size_t *querysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_job_request </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>job_state_mask</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>callback_url</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>rsl</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>query</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>querysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM Job Request. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a></em> function combines its parameters into a GRAM job request message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gad1abe20b6a040c49266f17d96d160b38" title="Post a GRAM protocol request to a GRAM server.">globus_gram_protocol_post()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#ga802c7ddc5d740a8924c4d8ea4da34ccf" title="Create a HTTP-framed copy of a GRAM request.">globus_gram_protocol_frame_request()</a></em> and send it by some other mechanism. The <a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a> function returns the packed message by modifying the <em>query</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">job_state_mask</td><td>The bitwise-or of the GRAM job states which the client would like to register for job state change callbacks. </td></tr> <tr><td class="paramname">callback_url</td><td>A callback contact string which will be contacted when a job state change which matches the <em>job_state_mask</em> occurs. This may be NULL, if the client does not wish to register a callback contact with this job request. Typically, this value is returned in the <em>url</em> parameter to <em><a class="el" href="group__globus__gram__protocol__io.html#ga5672d838f7c38e983d09c4c73e00b0eb" title="Create a GRAM protocol service listener.">globus_gram_protocol_allow_attach()</a></em>. </td></tr> <tr><td class="paramname">rsl</td><td>An RSL string which contains the job request. This will be processed on the server side. </td></tr> <tr><td class="paramname">query</td><td>An output parameter which will be set to a new string containing the packed job request message. The caller must free this memory by calling free() </td></tr> <tr><td class="paramname">querysize</td><td>An output parameter which will be populated with the length of the job request message returned in <em>query</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a></em> returns GLOBUS_SUCCESS and modifies the <em>query</em> and <em>querysize</em> parameters to point to the values described above.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</td><td>Null parameter </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga38661e5ce3605686330946020f4d921a"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_job_request_reply" ref="ga38661e5ce3605686330946020f4d921a" args="(int status, const char *job_contact, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_job_request_reply </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>job_contact</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM reply message. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga38661e5ce3605686330946020f4d921a" title="Pack a GRAM reply message.">globus_gram_protocol_pack_job_request_reply()</a></em> function combines its parameters into a GRAM reply message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#gad36cdae83ef495c64ef51eb4a4e0c59b" title="Create a HTTP-framed copy of a GRAM reply.">globus_gram_protocol_frame_reply()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga38661e5ce3605686330946020f4d921a" title="Pack a GRAM reply message.">globus_gram_protocol_pack_job_request_reply()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">status</td><td>The job's failure code if the job failed, or 0, if the job request was processed successfully. </td></tr> <tr><td class="paramname">job_contact</td><td>A string containing the job contact string. This may be NULL, if the job request was not successful. </td></tr> <tr><td class="paramname">reply</td><td>A pointer which will be set to the packed reply string The caller must free this string by calling free(). </td></tr> <tr><td class="paramname">replysize</td><td>A pointer which will be set to the length of the reply string.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga38661e5ce3605686330946020f4d921a" title="Pack a GRAM reply message.">globus_gram_protocol_pack_job_request_reply()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga870c36c04014e9951a9360d9a90d4485"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_job_request_reply_with_extensions" ref="ga870c36c04014e9951a9360d9a90d4485" args="(int status, const char *job_contact, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_job_request_reply_with_extensions </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>job_contact</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_hashtable_t * </td> <td class="paramname"><em>extensions</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM reply message with extension attributes. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga870c36c04014e9951a9360d9a90d4485" title="Pack a GRAM reply message with extension attributes.">globus_gram_protocol_pack_job_request_reply_with_extensions()</a></em> function combines its parameters into a GRAM reply message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#gad36cdae83ef495c64ef51eb4a4e0c59b" title="Create a HTTP-framed copy of a GRAM reply.">globus_gram_protocol_frame_reply()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga870c36c04014e9951a9360d9a90d4485" title="Pack a GRAM reply message with extension attributes.">globus_gram_protocol_pack_job_request_reply_with_extensions()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">status</td><td>The job's failure code if the job failed, or 0, if the job request was processed successfully. </td></tr> <tr><td class="paramname">job_contact</td><td>A string containing the job contact string. This may be NULL, if the job request was not successful. </td></tr> <tr><td class="paramname">extensions</td><td>A pointer to a hash table keyed on a string attribute name with the hash values being pointers to <em>globus_gram_protocol_extension_t</em> structures. These will be encoded in the reply message after the standard attributes. </td></tr> <tr><td class="paramname">reply</td><td>A pointer which will be set to the packed reply string The caller must free this string by calling free(). </td></tr> <tr><td class="paramname">replysize</td><td>A pointer which will be set to the length of the reply string.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga870c36c04014e9951a9360d9a90d4485" title="Pack a GRAM reply message with extension attributes.">globus_gram_protocol_pack_job_request_reply_with_extensions()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga431d7940fdad541823245facc7200ef9"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_status_request" ref="ga431d7940fdad541823245facc7200ef9" args="(const char *status_request, globus_byte_t **query, globus_size_t *querysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_status_request </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>status_request</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>query</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>querysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM query message. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_request()</a></em> function combines its parameters into a GRAM status query message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gad1abe20b6a040c49266f17d96d160b38" title="Post a GRAM protocol request to a GRAM server.">globus_gram_protocol_post()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#ga802c7ddc5d740a8924c4d8ea4da34ccf" title="Create a HTTP-framed copy of a GRAM request.">globus_gram_protocol_frame_request()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_request()</a></em> function returns the packed message by modifying the <em>query</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">status_request</td><td>A string containing the type of query message to send, including any query parameters. The valid strings supported by GRAM in GT5 are:<ul> <li>status</li> <li>register</li> <li>unregister</li> <li>signal</li> <li>renew</li> <li>cancel </li> </ul> </td></tr> <tr><td class="paramname">query</td><td>An output parameter which will be set to a new string containing the packed job query message. </td></tr> <tr><td class="paramname">querysize</td><td>An output parameter which will be set to the length of the job query message returned in <em>query</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_request()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>query</em> and <em>querysize</em> parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>query</em> and <em>querysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga016c5b35447ecf9a6c86c062c509c412"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_status_reply" ref="ga016c5b35447ecf9a6c86c062c509c412" args="(int job_status, int failure_code, int job_failure_code, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_status_reply </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>job_status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>job_failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM query reply message. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga016c5b35447ecf9a6c86c062c509c412" title="Pack a GRAM query reply message.">globus_gram_protocol_pack_status_reply()</a></em> function combines its parameters into a GRAM status reply message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#gad36cdae83ef495c64ef51eb4a4e0c59b" title="Create a HTTP-framed copy of a GRAM reply.">globus_gram_protocol_frame_reply()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga016c5b35447ecf9a6c86c062c509c412" title="Pack a GRAM query reply message.">globus_gram_protocol_pack_status_reply()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">job_status</td><td>The job's current <a class="el" href="group__globus__gram__protocol__job__state.html#globus_gram_protocol_job_state_t">job state</a>. </td></tr> <tr><td class="paramname">failure_code</td><td>The error code generated by the query. This may be GLOBUS_SUCCESS if the query succeeded. </td></tr> <tr><td class="paramname">job_failure_code</td><td>The error code associated with the job if it has failed. This may be GLOBUS_SUCCESS if the job has not failed. </td></tr> <tr><td class="paramname">reply</td><td>An output parameter which will be set to a new string containing the packed reply message. </td></tr> <tr><td class="paramname">replysize</td><td>An output parameter which will be set to the length of the reply message returned in <em>reply</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga016c5b35447ecf9a6c86c062c509c412" title="Pack a GRAM query reply message.">globus_gram_protocol_pack_status_reply()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga5eb14f052e85d85e6b8f02db9e66263a"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_status_reply_with_extensions" ref="ga5eb14f052e85d85e6b8f02db9e66263a" args="(int job_status, int failure_code, int job_failure_code, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_status_reply_with_extensions </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>job_status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>job_failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_hashtable_t * </td> <td class="paramname"><em>extensions</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM query reply message with extensions. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga5eb14f052e85d85e6b8f02db9e66263a" title="Pack a GRAM query reply message with extensions.">globus_gram_protocol_pack_status_reply_with_extensions()</a></em> function combines its parameters into a GRAM status reply message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#gad36cdae83ef495c64ef51eb4a4e0c59b" title="Create a HTTP-framed copy of a GRAM reply.">globus_gram_protocol_frame_reply()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga5eb14f052e85d85e6b8f02db9e66263a" title="Pack a GRAM query reply message with extensions.">globus_gram_protocol_pack_status_reply_with_extensions()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">job_status</td><td>The job's current <a class="el" href="group__globus__gram__protocol__job__state.html#globus_gram_protocol_job_state_t">job state</a>. </td></tr> <tr><td class="paramname">failure_code</td><td>The error code generated by the query. This may be GLOBUS_SUCCESS if the query succeeded. </td></tr> <tr><td class="paramname">job_failure_code</td><td>The error code associated with the job if it has failed. This may be GLOBUS_SUCCESS if the job has not failed. </td></tr> <tr><td class="paramname">extensions</td><td>A pointer to a hash table containing the names and values of the protocol extensions to add to this message. </td></tr> <tr><td class="paramname">reply</td><td>An output parameter which will be set to a new string containing the packed reply message. </td></tr> <tr><td class="paramname">replysize</td><td>An output parameter which will be set to the length of the reply message returned in <em>reply</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga5eb14f052e85d85e6b8f02db9e66263a" title="Pack a GRAM query reply message with extensions.">globus_gram_protocol_pack_status_reply_with_extensions()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga9f9d7d5f6c369cb81acd439643fce83f"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_status_update_message" ref="ga9f9d7d5f6c369cb81acd439643fce83f" args="(char *job_contact, int status, int failure_code, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_status_update_message </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>job_contact</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM status update message. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga9f9d7d5f6c369cb81acd439643fce83f" title="Pack a GRAM status update message.">globus_gram_protocol_pack_status_update_message()</a></em> function combines its parameters into a GRAM status update message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gad1abe20b6a040c49266f17d96d160b38" title="Post a GRAM protocol request to a GRAM server.">globus_gram_protocol_post()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#ga802c7ddc5d740a8924c4d8ea4da34ccf" title="Create a HTTP-framed copy of a GRAM request.">globus_gram_protocol_frame_request()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga9f9d7d5f6c369cb81acd439643fce83f" title="Pack a GRAM status update message.">globus_gram_protocol_pack_status_update_message()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">job_contact</td><td>The job contact string associated with the job. </td></tr> <tr><td class="paramname">status</td><td>The job's current <a class="el" href="group__globus__gram__protocol__job__state.html#globus_gram_protocol_job_state_t">job state</a>. </td></tr> <tr><td class="paramname">failure_code</td><td>The error associated with this job request if the <em>status</em> value is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED. </td></tr> <tr><td class="paramname">reply</td><td>An output parameter which will be set to a new string containing the packed status message. The caller must free this memory by calling free() </td></tr> <tr><td class="paramname">replysize</td><td>An output parameter which will be set to the length of the status message returned in <em>reply</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga9f9d7d5f6c369cb81acd439643fce83f" title="Pack a GRAM status update message.">globus_gram_protocol_pack_status_update_message()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters as described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gac1e323a172f8e59639ef5f3855335ed4"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_status_update_message_with_extensions" ref="gac1e323a172f8e59639ef5f3855335ed4" args="(char *job_contact, int status, int failure_code, globus_hashtable_t *extensions, globus_byte_t **reply, globus_size_t *replysize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_status_update_message_with_extensions </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>job_contact</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>status</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>failure_code</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_hashtable_t * </td> <td class="paramname"><em>extensions</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_byte_t ** </td> <td class="paramname"><em>reply</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t * </td> <td class="paramname"><em>replysize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM status update message with extensions. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#gac1e323a172f8e59639ef5f3855335ed4" title="Pack a GRAM status update message with extensions.">globus_gram_protocol_pack_status_update_message_with_extensions()</a></em> function combines its parameters into a GRAM status update message body. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gad1abe20b6a040c49266f17d96d160b38" title="Post a GRAM protocol request to a GRAM server.">globus_gram_protocol_post()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#ga802c7ddc5d740a8924c4d8ea4da34ccf" title="Create a HTTP-framed copy of a GRAM request.">globus_gram_protocol_frame_request()</a></em> and send it by some other mechanism. The <em><a class="el" href="group__globus__gram__protocol__pack.html#gac1e323a172f8e59639ef5f3855335ed4" title="Pack a GRAM status update message with extensions.">globus_gram_protocol_pack_status_update_message_with_extensions()</a></em> function returns the packed message by modifying the <em>reply</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">job_contact</td><td>The job contact string associated with the job. </td></tr> <tr><td class="paramname">status</td><td>The job's current <a class="el" href="group__globus__gram__protocol__job__state.html#globus_gram_protocol_job_state_t">job state</a>. </td></tr> <tr><td class="paramname">failure_code</td><td>The error associated with this job request if the <em>status</em> value is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED. </td></tr> <tr><td class="paramname">extensions</td><td>A pointer to a hash table keyed by extension attribute names with the values being pointers to globus_gram_protocol_extension_t structures. </td></tr> <tr><td class="paramname">reply</td><td>An output parameter which will be set to a new string containing the packed status message. The caller must free this memory by calling free() </td></tr> <tr><td class="paramname">replysize</td><td>An output parameter which will be set to the length of the status message returned in <em>reply</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#gac1e323a172f8e59639ef5f3855335ed4" title="Pack a GRAM status update message with extensions.">globus_gram_protocol_pack_status_update_message_with_extensions()</a></em> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>reply</em> and <em>replysize</em> parameters as described above. If an error occurs, an integer error code is returned and the values pointed to by <em>reply</em> and <em>replysize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaae76ed0305e54bc75ccbe3febc66939c"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_pack_version_request" ref="gaae76ed0305e54bc75ccbe3febc66939c" args="(char **request, size_t *requestsize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gram_protocol_pack_version_request </td> <td>(</td> <td class="paramtype">char ** </td> <td class="paramname"><em>request</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t * </td> <td class="paramname"><em>requestsize</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Pack a GRAM version request message. </p> <p>The <em><a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a></em> function creates a copy of the GRAM version request. The caller may frame and send the resulting message by calling <em><a class="el" href="group__globus__gram__protocol__io.html#gad1abe20b6a040c49266f17d96d160b38" title="Post a GRAM protocol request to a GRAM server.">globus_gram_protocol_post()</a></em> or just frame it by calling <em><a class="el" href="group__globus__gram__protocol__framing.html#ga802c7ddc5d740a8924c4d8ea4da34ccf" title="Create a HTTP-framed copy of a GRAM request.">globus_gram_protocol_frame_request()</a></em> and send it by some other mechanism. The <a class="el" href="group__globus__gram__protocol__pack.html#gaae76ed0305e54bc75ccbe3febc66939c" title="Pack a GRAM version request message.">globus_gram_protocol_pack_version_request()</a> function returns the packed message by modifying the <em>request</em> parameter to point to a new string containing the message. The caller is responsible for freeing that string.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">request</td><td>An output parameter which will be set to a new string containing the packed version request message. The caller must free this memory by calling free(). </td></tr> <tr><td class="paramname">requestsize</td><td>An output parameter which will be populated with the length of the version request message returned in <em>query</em>.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <em><a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a></em> returns GLOBUS_SUCCESS and modifies the <em>request</em> and <em>requestsize</em> parameters to point to the values described above. If an error occurs, <em><a class="el" href="group__globus__gram__protocol__pack.html#gaae76ed0305e54bc75ccbe3febc66939c" title="Pack a GRAM version request message.">globus_gram_protocol_pack_version_request()</a></em> returns an integer error code and the values pointed to by <em>request</em> and <em>requestsize</em> are undefined.</dd></dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</td><td>Null parameter </td></tr> <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</td><td>Out of memory </td></tr> </table> </dd> </dl> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <hr> <p align="center"> <a href="http://www.globus.org/toolkit/about.html" target="_top">about globus</a> | <a href="http://www.globus.org/toolkit/" target="_top">globus toolkit</a> | <a href="https://dev.globus.org/wiki/Welcome/" target="_top">dev.globus</a> <br> <br> Comments? <a href="mailto:webmaster@globus.org">webmaster@globus.org</a> </body> </html>