Sophie

Sophie

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

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__unpack.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 Unpacking</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 Unpacking:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__globus__gram__protocol__unpack.png" border="0" alt="" usemap="#group____globus____gram____protocol____unpack"/>
<map name="group____globus____gram____protocol____unpack" id="group____globus____gram____protocol____unpack">
<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__unpack.html#ga09bf3cfb5440080bc03c93297c782df9">globus_gram_protocol_unpack_job_request</a> (const globus_byte_t *query, globus_size_t querysize, int *job_state_mask, char **callback_url, char **description)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#ga0af9386e715e6a0ded25151ce12d1479">globus_gram_protocol_unpack_job_request_reply</a> (const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#gade3cdec17d95611a36f87697096221e5">globus_gram_protocol_unpack_job_request_reply_with_extensions</a> (const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact, globus_hashtable_t *extensions)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#gac75cb1eb57899932612e3da79fadc706">globus_gram_protocol_unpack_status_request</a> (const globus_byte_t *query, globus_size_t querysize, char **status_request)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#gafda4b17bfddd3cbe1e333e24cb5e07af">globus_gram_protocol_unpack_status_reply</a> (const globus_byte_t *reply, globus_size_t replysize, int *job_status, int *failure_code, int *job_failure_code)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#gafccfbf252a972d26760498384dccd917">globus_gram_protocol_unpack_status_reply_with_extensions</a> (const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#gaf789826b960913b2e6047445e3ff5eae">globus_gram_protocol_unpack_status_update_message</a> (const globus_byte_t *reply, globus_size_t replysize, char **job_contact, int *status, int *failure_code)
<li>int <a class="el" href="group__globus__gram__protocol__unpack.html#ga944733f4c400455c91f33d23136bf320">globus_gram_protocol_unpack_status_update_message_with_extensions</a> (const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)
<li>void <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643">globus_gram_protocol_hash_destroy</a> (globus_hashtable_t *message_hash)
</ul>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga09bf3cfb5440080bc03c93297c782df9"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_job_request" ref="ga09bf3cfb5440080bc03c93297c782df9" args="(const globus_byte_t *query, globus_size_t querysize, int *job_state_mask, char **callback_url, char **description)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_job_request </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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">char **&#160;</td>
          <td class="paramname"><em>callback_url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>description</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM Job Request. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#ga09bf3cfb5440080bc03c93297c782df9" title="Unpack a GRAM Job Request.">globus_gram_protocol_unpack_job_request()</a> function parses the job request message packed in the <em>query</em> message and returns copies of the standard message attributes in the <em>job_state_mask</em>, <em>callback_url</em>, and <em>description</em> parameters.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">query</td><td>The unframed job request message to parse. </td></tr>
    <tr><td class="paramname">querysize</td><td>The length of the job request message string. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A pointer to an integer to be set to the job state mask from the job request. </td></tr>
    <tr><td class="paramname">callback_url</td><td>A 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(). </td></tr>
    <tr><td class="paramname">description</td><td>A 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().</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#ga09bf3cfb5440080bc03c93297c782df9" title="Unpack a GRAM Job Request.">globus_gram_protocol_unpack_job_request()</a> will return <em>GLOBUS_SUCCESS</em> and modify the <em>job_state_mask</em>, <em>callback_url</em>, and <em>description</em> parameters to values extracted from the message in <em>query</em>. If an error occurs, an integer error code will be returned and the values of <em>job_state_mask</em>, <em>callback_url</em>, and <em>description</em> will be 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_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0af9386e715e6a0ded25151ce12d1479"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_job_request_reply" ref="ga0af9386e715e6a0ded25151ce12d1479" args="(const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_job_request_reply </td>
          <td>(</td>
          <td class="paramtype">const 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>, </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">char **&#160;</td>
          <td class="paramname"><em>job_contact</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM reply message. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#ga0af9386e715e6a0ded25151ce12d1479" title="Unpack a GRAM reply message.">globus_gram_protocol_unpack_job_request_reply()</a> function parses the reply message packed in the <em>reply</em> message and returns copies of the standard message attributes in the <em>status</em> and <em>job_contact</em> parameters.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply</td><td>The unframed job reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>The length of the reply string. </td></tr>
    <tr><td class="paramname">status</td><td>A 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. </td></tr>
    <tr><td class="paramname">job_contact</td><td>A pointer to a string to be set to the job contact string. This may set to NULL if the job request failed. If <a class="el" href="group__globus__gram__protocol__unpack.html#ga0af9386e715e6a0ded25151ce12d1479" title="Unpack a GRAM reply message.">globus_gram_protocol_unpack_job_request_reply()</a> returns GLOBUS_SUCCESS, then the caller must free this string using free().</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#ga0af9386e715e6a0ded25151ce12d1479" title="Unpack a GRAM reply message.">globus_gram_protocol_unpack_job_request_reply()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>status</em> and <em>job_contact</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>status</em> and <em>job_contact</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_GRAN_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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gade3cdec17d95611a36f87697096221e5"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_job_request_reply_with_extensions" ref="gade3cdec17d95611a36f87697096221e5" args="(const globus_byte_t *reply, globus_size_t replysize, int *status, char **job_contact, globus_hashtable_t *extensions)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_job_request_reply_with_extensions </td>
          <td>(</td>
          <td class="paramtype">const 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>, </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">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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM reply message, parsing all extensions. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#gade3cdec17d95611a36f87697096221e5" title="Unpack a GRAM reply message, parsing all extensions.">globus_gram_protocol_unpack_job_request_reply_with_extensions()</a> function parses the reply message packed in the <em>reply</em> message parameter and returns copies of the standard message attributes in the <em>status</em> and <em>job_contact</em> parameters, and all other extension attributes in the hashtable pointed to by <em>extensions</em>. Each entry in the hashtable will be keyed by the attribute name and the value will be a pointer to a <em>globus_gram_protocol_extension_t</em> structure.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">status</td><td>A 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. </td></tr>
    <tr><td class="paramname">job_contact</td><td>A pointer to a string to be set to the job contact string. This may set to NULL if the job request failed. If <a class="el" href="group__globus__gram__protocol__unpack.html#gade3cdec17d95611a36f87697096221e5" title="Unpack a GRAM reply message, parsing all extensions.">globus_gram_protocol_unpack_job_request_reply_with_extensions()</a> returns GLOBUS_SUCCESS, then the caller must free this string using free(). </td></tr>
    <tr><td class="paramname">extensions</td><td>A pointer to be set to a hash table containing the names and values of all protocol extensions present in the response message. If <a class="el" href="group__globus__gram__protocol__unpack.html#gade3cdec17d95611a36f87697096221e5" title="Unpack a GRAM reply message, parsing all extensions.">globus_gram_protocol_unpack_job_request_reply_with_extensions()</a> returns GLOBUS_SUCCESS, the caller must free this hash table and its values by calling <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643" title="Destroy message attribute hash.">globus_gram_protocol_hash_destroy()</a>. </td></tr>
    <tr><td class="paramname">reply</td><td>The unframed job reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>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__unpack.html#gade3cdec17d95611a36f87697096221e5" title="Unpack a GRAM reply message, parsing all extensions.">globus_gram_protocol_unpack_job_request_reply_with_extensions()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>status</em>, <em>job_contact</em>, and <em>extensions</em> to point to the values described above. If an error occurs, an integer error code is returned and the values pointed to by <em>status</em>, <em>job_contact</em>, and <em>extensions</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_GRAN_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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac75cb1eb57899932612e3da79fadc706"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_status_request" ref="gac75cb1eb57899932612e3da79fadc706" args="(const globus_byte_t *query, globus_size_t querysize, char **status_request)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_status_request </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>status_request</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM query message. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#gac75cb1eb57899932612e3da79fadc706" title="Unpack a GRAM query message.">globus_gram_protocol_unpack_status_request()</a> function parses the message packed in the <em>query</em> parameter and returns a copy of the message in the <em>status_request</em> parameter.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">query</td><td>The unframed query message to parse. </td></tr>
    <tr><td class="paramname">querysize</td><td>The length of the query string. </td></tr>
    <tr><td class="paramname">status_request</td><td>A pointer to a string to be set to the query value. The caller must free this string using free().</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#gac75cb1eb57899932612e3da79fadc706" title="Unpack a GRAM query message.">globus_gram_protocol_unpack_status_request()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>status_request</em> parameter to point to the value described above. If an error occurs, an integer error code is returned and the value pointed to by <em>status_request</em> is 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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafda4b17bfddd3cbe1e333e24cb5e07af"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_status_reply" ref="gafda4b17bfddd3cbe1e333e24cb5e07af" args="(const globus_byte_t *reply, globus_size_t replysize, int *job_status, int *failure_code, int *job_failure_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_status_reply </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM query reply. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#gafda4b17bfddd3cbe1e333e24cb5e07af" title="Unpack a GRAM query reply.">globus_gram_protocol_unpack_status_reply()</a> function parses the message packed in the <em>reply</em> parameter and sets the current job state, protocol failure code, and job failure code values in its output parameters.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply</td><td>The unframed reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>The length of the reply message. </td></tr>
    <tr><td class="paramname">job_status</td><td>A pointer to an integer to be set to 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>A 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. </td></tr>
    <tr><td class="paramname">job_failure_code</td><td>A pointer to an integer to be set to the failure code for the job, if the <em>job_status</em> is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#gafda4b17bfddd3cbe1e333e24cb5e07af" title="Unpack a GRAM query reply.">globus_gram_protocol_unpack_status_reply()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>job_status</em>, <em>failure_code</em>, and <em>job_failure_code</em> parameters to point to the value described above. If an error occurs, an integer error code is returned and the values pointed to by <em>job_status</em>, <em>failure_code</em>, and <em>job_failure_code</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_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </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="gafccfbf252a972d26760498384dccd917"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_status_reply_with_extensions" ref="gafccfbf252a972d26760498384dccd917" args="(const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_status_reply_with_extensions </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>extensions</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM query reply with extensions. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#gafccfbf252a972d26760498384dccd917" title="Unpack a GRAM query reply with extensions.">globus_gram_protocol_unpack_status_reply_with_extensions()</a> function parses the message packed in the <em>reply</em> parameter, storing all attributes and values in a hash table. The <em>extensions</em> parameter is modified to point to that hash table. The caller of <a class="el" href="group__globus__gram__protocol__unpack.html#gafccfbf252a972d26760498384dccd917" title="Unpack a GRAM query reply with extensions.">globus_gram_protocol_unpack_status_reply_with_extensions()</a> must free that hash table by calling <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643" title="Destroy message attribute hash.">globus_gram_protocol_hash_destroy()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply</td><td>The unframed reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>The length of the reply message. </td></tr>
    <tr><td class="paramname">extensions</td><td>A pointer to be set to a hash table containing the names and values of all protocol attributes present in the reply message. If <a class="el" href="group__globus__gram__protocol__unpack.html#gafccfbf252a972d26760498384dccd917" title="Unpack a GRAM query reply with extensions.">globus_gram_protocol_unpack_status_reply_with_extensions()</a> returns GLOBUS_SUCCESS, the caller must free this hash table and its values by calling <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643" title="Destroy message attribute hash.">globus_gram_protocol_hash_destroy()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#gafccfbf252a972d26760498384dccd917" title="Unpack a GRAM query reply with extensions.">globus_gram_protocol_unpack_status_reply_with_extensions()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>extensions</em> parameter to point to the value described above. If an error occurs, an integer error code is returned and the value pointed to by <em>extensions</em> is 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_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf789826b960913b2e6047445e3ff5eae"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_status_update_message" ref="gaf789826b960913b2e6047445e3ff5eae" args="(const globus_byte_t *reply, globus_size_t replysize, char **job_contact, int *status, int *failure_code)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_status_update_message </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM status update message. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#gaf789826b960913b2e6047445e3ff5eae" title="Unpack a GRAM status update message.">globus_gram_protocol_unpack_status_update_message()</a> function parses the message packed in the <em>reply</em> parameter, storing the standard message attribute values in its return parameters <em>job_contact</em>, <em>status</em>, and <em>failure_code</em>. The caller is responsible for freeing the <em>job_contact</em> value.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply</td><td>The unframed reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>The length of the reply message. </td></tr>
    <tr><td class="paramname">job_contact</td><td>An output parameter to be set to the job contact string. If <a class="el" href="group__globus__gram__protocol__unpack.html#gaf789826b960913b2e6047445e3ff5eae" title="Unpack a GRAM status update message.">globus_gram_protocol_unpack_status_update_message()</a> returns GLOBUS_SUCCESS, then the caller must free this string using free(). </td></tr>
    <tr><td class="paramname">status</td><td>An output parameter to be set to the integer value of 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>An output parameter to be set to the integer failure code for the job if the <em>job_status</em> is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#gaf789826b960913b2e6047445e3ff5eae" title="Unpack a GRAM status update message.">globus_gram_protocol_unpack_status_update_message()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>job_contact</em>, <em>status</em>, and <em>failure_code</em> parameters as described above. If an error occurs, an integer error code is returned and the values pointed to by the <em>job_contact</em>, <em>status</em>, and <em>failure_code</em> parameters are undefined.</dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Sucess </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_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</td><td>Out of memory </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga944733f4c400455c91f33d23136bf320"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_unpack_status_update_message_with_extensions" ref="ga944733f4c400455c91f33d23136bf320" args="(const globus_byte_t *reply, globus_size_t replysize, globus_hashtable_t *extensions)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_protocol_unpack_status_update_message_with_extensions </td>
          <td>(</td>
          <td class="paramtype">const 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>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>extensions</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Unpack a GRAM status update message with extensions. </p>
<p>The <a class="el" href="group__globus__gram__protocol__unpack.html#ga944733f4c400455c91f33d23136bf320" title="Unpack a GRAM status update message with extensions.">globus_gram_protocol_unpack_status_update_message_with_extensions()</a> function parses the message packed in the <em>reply</em> parameter, storing the message attribute values in its return parameter <em>extensions</em>. The caller is responsible for freeing the <em>extensions</em> hash table by calling <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643" title="Destroy message attribute hash.">globus_gram_protocol_hash_destroy()</a>.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">reply</td><td>The unframed reply message to parse. </td></tr>
    <tr><td class="paramname">replysize</td><td>The length of the reply message. </td></tr>
    <tr><td class="paramname">extensions</td><td>An output parameter which will be initialized to a hashtable containing the message attributes. The caller must destroy this hashtable calling <a class="el" href="group__globus__gram__protocol__unpack.html#ga4870cad9c52d744ae5348f5bb4bde643" title="Destroy message attribute hash.">globus_gram_protocol_hash_destroy()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Upon success, <a class="el" href="group__globus__gram__protocol__unpack.html#ga944733f4c400455c91f33d23136bf320" title="Unpack a GRAM status update message with extensions.">globus_gram_protocol_unpack_status_update_message_with_extensions()</a> returns <em>GLOBUS_SUCCESS</em> and modifies the <em>extensions</em> parameter as described above. If an error occurs, an integer error code is returned and the value pointed to by the <em>extensions</em> parameters is undefined.</dd></dl>
<dl><dt><b>Return values:</b></dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Sucess </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED</td><td>Unpack failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</td><td>Malloc failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_VERSION_MISMATCH</td><td>Version mismatch </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga4870cad9c52d744ae5348f5bb4bde643"></a><!-- doxytag: member="globus_gram_protocol_pack.c::globus_gram_protocol_hash_destroy" ref="ga4870cad9c52d744ae5348f5bb4bde643" args="(globus_hashtable_t *message_hash)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void globus_gram_protocol_hash_destroy </td>
          <td>(</td>
          <td class="paramtype">globus_hashtable_t *&#160;</td>
          <td class="paramname"><em>message_hash</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy message attribute hash. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">message_hash</td><td>Hashtable of globus_gram_protocol_extension_t * values to destroy </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>