Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 39907065f1eb3c6a70bcb6d8d4286f7f > files > 43

globus-gram-protocol-doc-9.7-6.fc14.noarch.rpm

<!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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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&#160;</td>
          <td class="paramname"><em>job_state_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>callback_url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>rsl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>querysize</em>&#160;</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 <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 combines its parameters into a GRAM job request message body. The caller may frame and send the resulting message by calling <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> or just frame it by calling <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> 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 <a class="el" href="group__globus__gram__protocol__io.html#ga5672d838f7c38e983d09c4c73e00b0eb" title="Create a GRAM protocol service listener.">globus_gram_protocol_allow_attach()</a>. </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, <a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a> 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&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>job_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM reply message body. The caller may frame and send the resulting message by calling <a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>job_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>extensions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM reply message body. The caller may frame and send the resulting message by calling <a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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 *&#160;</td>
          <td class="paramname"><em>status_request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>querysize</em>&#160;</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 <a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_request()</a> function combines its parameters into a GRAM status query message body. The caller may frame and send the resulting message by calling <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> or just frame it by calling <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> and send it by some other mechanism. The <a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_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">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, <a class="el" href="group__globus__gram__protocol__pack.html#ga431d7940fdad541823245facc7200ef9" title="Pack a GRAM query message.">globus_gram_protocol_pack_status_request()</a> 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&#160;</td>
          <td class="paramname"><em>job_status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>job_failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM status reply message body. The caller may frame and send the resulting message by calling <a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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&#160;</td>
          <td class="paramname"><em>job_status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>job_failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>extensions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM status reply message body. The caller may frame and send the resulting message by calling <a class="el" href="group__globus__gram__protocol__io.html#gab69a2fc894783c133b16aa8ca4d6546c" title="Reply to a GRAM protocol message.">globus_gram_protocol_reply()</a> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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 *&#160;</td>
          <td class="paramname"><em>job_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM status update message body. The caller may frame and send the resulting message by calling <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> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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 *&#160;</td>
          <td class="paramname"><em>job_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>failure_code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>extensions</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_byte_t **&#160;</td>
          <td class="paramname"><em>reply</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_size_t *&#160;</td>
          <td class="paramname"><em>replysize</em>&#160;</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 <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> function combines its parameters into a GRAM status update message body. The caller may frame and send the resulting message by calling <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> or just frame it by calling <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> and send it by some other mechanism. The <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> 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, <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> 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 **&#160;</td>
          <td class="paramname"><em>request</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>requestsize</em>&#160;</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 <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 creates a copy of the GRAM version request. The caller may frame and send the resulting message by calling <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> or just frame it by calling <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> 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, <a class="el" href="group__globus__gram__protocol__pack.html#ga86417f402c997031f6353a70ca3b853f" title="Pack a GRAM Job Request.">globus_gram_protocol_pack_job_request()</a> 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, <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> 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>