Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > acf121f1334bf9d5e0d4715685ead370 > files > 40

globus-gram-client-doc-12.4-8.fc18.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.8.3.1 -->
  <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>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__globus__gram__client__job__functions.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">GRAM Job Functions</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaa883405ddafc564a1bcd0aeb654df506"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gaa883405ddafc564a1bcd0aeb654df506">globus_gram_client_register_ping</a> (const char *resource_manager_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:gaa883405ddafc564a1bcd0aeb654df506"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga034c36971a1afcb6fa6adcb73916a036"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga034c36971a1afcb6fa6adcb73916a036">globus_gram_client_ping</a> (const char *resource_manager_contact)</td></tr>
<tr class="separator:ga034c36971a1afcb6fa6adcb73916a036"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4861d3cb69370b51eb74e13ec14b6439"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga4861d3cb69370b51eb74e13ec14b6439">globus_gram_client_get_jobmanager_version</a> (const char *resource_manager_contact, globus_hashtable_t *extensions)</td></tr>
<tr class="separator:ga4861d3cb69370b51eb74e13ec14b6439"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32f44d827381009d4f3c8692d14dcab7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga32f44d827381009d4f3c8692d14dcab7">globus_gram_client_register_get_jobmanager_version</a> (const char *resource_manager_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a> info_callback, void *callback_arg)</td></tr>
<tr class="separator:ga32f44d827381009d4f3c8692d14dcab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac67ffcb833bb39a7df704bb7105c0834"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834">globus_gram_client_register_job_request</a> (const char *resource_manager_contact, const char *description, int job_state_mask, const char *callback_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:gac67ffcb833bb39a7df704bb7105c0834"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa314342a1c6627039c269bc4574ad371"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371">globus_gram_client_job_request</a> (const char *resource_manager_contact, const char *description, int job_state_mask, const char *callback_contact, char **job_contact)</td></tr>
<tr class="separator:gaa314342a1c6627039c269bc4574ad371"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad57dfb7787e8a6d691a2772e1845315c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gad57dfb7787e8a6d691a2772e1845315c">globus_gram_client_register_job_request_with_info</a> (const char *resource_manager_contact, const char *description, int job_state_mask, const char *callback_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a> callback, void *callback_arg)</td></tr>
<tr class="separator:gad57dfb7787e8a6d691a2772e1845315c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga85bc82c2c2f78ff80c5638a2bc3cbff6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga85bc82c2c2f78ff80c5638a2bc3cbff6">globus_gram_client_job_request_with_info</a> (const char *resource_manager_contact, const char *description, int job_state_mask, const char *callback_contact, char **job_contact, <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *info)</td></tr>
<tr class="separator:ga85bc82c2c2f78ff80c5638a2bc3cbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f45e141e1c09053f0c4990f52deb533"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533">globus_gram_client_job_cancel</a> (const char *job_contact)</td></tr>
<tr class="separator:ga7f45e141e1c09053f0c4990f52deb533"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga20303663e18baf3721797485ae74af1d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d">globus_gram_client_register_job_cancel</a> (const char *job_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:ga20303663e18baf3721797485ae74af1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab3b9aabe847525f8e75098ac9124ea2f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gab3b9aabe847525f8e75098ac9124ea2f">globus_gram_client_job_signal</a> (const char *job_contact, <a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a> signal, const char *signal_arg, int *job_status, int *failure_code)</td></tr>
<tr class="separator:gab3b9aabe847525f8e75098ac9124ea2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga971c36294b1fc70eb124644da72029ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga971c36294b1fc70eb124644da72029ce">globus_gram_client_register_job_signal</a> (const char *job_contact, <a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a> signal, const char *signal_arg, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:ga971c36294b1fc70eb124644da72029ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga962d23aaddd50c311c056855f802b3e8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga962d23aaddd50c311c056855f802b3e8">globus_gram_client_job_status</a> (const char *job_contact, int *job_status, int *failure_code)</td></tr>
<tr class="separator:ga962d23aaddd50c311c056855f802b3e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae690150b2ad9ff9ea5235dff50e382de"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gae690150b2ad9ff9ea5235dff50e382de">globus_gram_client_register_job_status</a> (const char *job_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:gae690150b2ad9ff9ea5235dff50e382de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3a9220670909b592aea574c3c4e2ead8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga3a9220670909b592aea574c3c4e2ead8">globus_gram_client_register_job_status_with_info</a> (const char *job_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a> info_callback, void *callback_arg)</td></tr>
<tr class="separator:ga3a9220670909b592aea574c3c4e2ead8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade7af50c37b445cc7d0b30e78ba9c4f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gade7af50c37b445cc7d0b30e78ba9c4f0">globus_gram_client_job_status_with_info</a> (const char *job_contact, <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *info)</td></tr>
<tr class="separator:gade7af50c37b445cc7d0b30e78ba9c4f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7eed82a7a7ed3b48fdd175acebcfa6a9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga7eed82a7a7ed3b48fdd175acebcfa6a9">globus_gram_client_job_callback_register</a> (const char *job_contact, int job_state_mask, const char *callback_contact, int *job_status, int *failure_code)</td></tr>
<tr class="separator:ga7eed82a7a7ed3b48fdd175acebcfa6a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf60bd1ea77d35c07982b88ab492a0244"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#gaf60bd1ea77d35c07982b88ab492a0244">globus_gram_client_job_callback_unregister</a> (const char *job_contact, const char *callback_contact, int *job_status, int *failure_code)</td></tr>
<tr class="separator:gaf60bd1ea77d35c07982b88ab492a0244"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga657a99512c240a5d0c4daaa6749466a5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5">globus_gram_client_job_refresh_credentials</a> (char *job_contact, gss_cred_id_t creds)</td></tr>
<tr class="separator:ga657a99512c240a5d0c4daaa6749466a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3681ebe5e010e998eb8cd04d00e9a1b4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga3681ebe5e010e998eb8cd04d00e9a1b4">globus_gram_client_register_job_refresh_credentials</a> (char *job_contact, gss_cred_id_t creds, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:ga3681ebe5e010e998eb8cd04d00e9a1b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1e6a7c618b2822a93612ba55f85bd787"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga1e6a7c618b2822a93612ba55f85bd787">globus_gram_client_register_job_callback_registration</a> (const char *job_contact, int job_state_mask, const char *callback_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:ga1e6a7c618b2822a93612ba55f85bd787"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga878c91da66157e255979e01728fb3adc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__job__functions.html#ga878c91da66157e255979e01728fb3adc">globus_gram_client_register_job_callback_unregistration</a> (const char *job_contact, const char *callback_contact, <a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a> attr, <a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> register_callback, void *register_callback_arg)</td></tr>
<tr class="separator:ga878c91da66157e255979e01728fb3adc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gaa883405ddafc564a1bcd0aeb654df506"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_ping </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a ping request to a GRAM service. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gaa883405ddafc564a1bcd0aeb654df506" title="Send a ping request to a GRAM service.">globus_gram_client_register_ping()</a> function sends a specially-formatted GRAM protocol message which checks to see if a Gatekeeper is running on a given PORT, and whether that Gatekeeper is configured to support the desired job manager service. This is used for diagnostic purposes.</p>
<p>If <a class="el" href="group__globus__gram__client__job__functions.html#gaa883405ddafc564a1bcd0aeb654df506" title="Send a ping request to a GRAM service.">globus_gram_client_register_ping()</a> determines that this request could not be processed before contacting the gatekeeper (for example, a malformed <em>resource_manager_contact</em>), it will return an error, and the <em>regiser_callback</em> function will not be called. Otherwise, the success or failure an be determined by the <em>operation_failure_code</em> parameter to the function pointed to by the <em>register_callback</em> parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the gatekeeper. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the ping request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#gaa883405ddafc564a1bcd0aeb654df506" title="Send a ping request to a GRAM service.">globus_gram_client_register_ping()</a> returns GLOBUS_SUCCESS and the <em>register_callback</em> function will be called once the ping operation completes. If an error occurs, this function returns an integer error code and the function pointed to by the <em>register_callback</em> parameter will not be called.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="ga034c36971a1afcb6fa6adcb73916a036"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_ping </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a ping request to a GRAM service. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga034c36971a1afcb6fa6adcb73916a036" title="Send a ping request to a GRAM service.">globus_gram_client_ping()</a> function sends a specially-formatted GRAM protocol message which checks to see if a Gatekeeper is running on a given PORT, and whether that Gatekeeper is configured to support the desired job manager service. This is used for diagnostic purposes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#ga034c36971a1afcb6fa6adcb73916a036" title="Send a ping request to a GRAM service.">globus_gram_client_ping()</a> contacts the gatekeeper service and returns <em>GLOBUS_SUCCESS</em>. If an error occurs, this function returns an integer error code.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga4861d3cb69370b51eb74e13ec14b6439"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_get_jobmanager_version </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_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>Get version information from a job manager. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga4861d3cb69370b51eb74e13ec14b6439" title="Get version information from a job manager.">globus_gram_client_get_jobmanager_version()</a> function sends a message to a GRAM service which returns information about the job manager version in the value pointed to by the <em>extensions</em> parameter. Note that job managers prior to GT5 do not support the version request and so will return a GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED error. This function blocks while processing this request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a>. </td></tr>
    <tr><td class="paramname">extensions</td><td>A pointer to a hash table which will be initialized to contain the version information returned by the service. The extensions defined by GRAM5 are <em>toolkit-version</em> and <em>version</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#ga4861d3cb69370b51eb74e13ec14b6439" title="Get version information from a job manager.">globus_gram_client_get_jobmanager_version()</a> function returns GLOBUS_SUCCESS and modifies the <em>extensions</em> parameter as described above. If an error occurs, the integer error code will be returned and the value pointed to by the <em>extensions</em> parameter is undefined.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_BAD_GATEKEEPER_CONTACT</td><td>Bad gatekeeper contact </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_PROTOCOL_FAILED</td><td>Protocol failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada886cdedbde30e16f277df62da20c58b3">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga32f44d827381009d4f3c8692d14dcab7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_get_jobmanager_version </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>info_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get version information from a job manager without blocking. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga32f44d827381009d4f3c8692d14dcab7" title="Get version information from a job manager without blocking.">globus_gram_client_register_get_jobmanager_version()</a> function sends a message to a GRAM service which returns information about the job manager version to the function pointed to by the <em>info_callback</em> function. Note that job managers prior to GT5 do not support the version request and so will return a GLOBUS_GRAM_PROTOCOL_ERROR_HTTP_UNPACK_FAILED error. This function blocks while processing this request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a>. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the gatekeeper. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">info_callback</td><td>A pointer to a function to call when the version request has completed or failed. </td></tr>
    <tr><td class="paramname">callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>info_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#ga32f44d827381009d4f3c8692d14dcab7" title="Get version information from a job manager without blocking.">globus_gram_client_register_get_jobmanager_version()</a> function returns GLOBUS_SUCCESS and begins processing the version request to contact <em>resource_manager_contact</em>; when complete, the <em>info_callback</em> function will be called. If an error occurs, the integer error code will be returned and the value pointed to by the <em>extensions</em> parameter is undefined.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_SUCCESS</td><td>Success </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_BAD_GATEKEEPER_CONTACT</td><td>Bad gatekeeper contact </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_PROTOCOL_FAILED</td><td>Protocol failed </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, and <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada886cdedbde30e16f277df62da20c58b3">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</a>.</p>

</div>
</div>
<a class="anchor" id="gac67ffcb833bb39a7df704bb7105c0834"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_request </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>description</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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a job request to a GRAM service. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834" title="Send a job request to a GRAM service.">globus_gram_client_register_job_request()</a> function sends a GRAM protocol message to a service to request that it start a job on behalf of the client.</p>
<p>If <a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834" title="Send a job request to a GRAM service.">globus_gram_client_register_job_request()</a> determines that this request could not be processed before contacting the gatekeeper (for example, a malformed <em>resource_manager_contact</em>), it will return an error, and the <em>regiser_callback</em> function will not be called. Otherwise, the success or failure an be determined by the <em>operation_failure_code</em> parameter to the function pointed to by the <em>register_callback</em> parameter.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact. </td></tr>
    <tr><td class="paramname">description</td><td>A pointer to a string containing the job request information formatted in RSL syntax. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A GRAM listener contact that the job manager will send job state notification messages to. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the gatekeeper. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the job_request request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834" title="Send a job request to a GRAM service.">globus_gram_client_register_job_request()</a> returns GLOBUS_SUCCESS and the <em>register_callback</em> function will be called once the job request operation completes. If an error occurs, this function returns an integer error code and the function pointed to by the <em>register_callback</em> parameter will not be called.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="gaa314342a1c6627039c269bc4574ad371"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_request </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>description</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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</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>Send a job request to a GRAM service. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a> function sends a GRAM protocol message to a service to request that it start a job on behalf of the client. Unlike, <a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834" title="Send a job request to a GRAM service.">globus_gram_client_register_job_request()</a>, <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a> blocks until the job request has been processed by the service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact. </td></tr>
    <tr><td class="paramname">description</td><td>A pointer to a string containing the job request information formatted in RSL syntax. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A GRAM listener contact that the job manager will send job state notification messages to. </td></tr>
    <tr><td class="paramname">job_contact</td><td>An output parameter pointing to a string that will be set to the job contact for this job. This value will only be set if the job request is successful or the two-phase commit protocol is being used and the return code is <em>GLOBUS_GRAM_PROTOCOL_ERROR_WAITING_FOR_COMMIT</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a> returns GLOBUS_SUCCESS and modifies the value pointed to by <em>job_contact</em> as described above. If an error occurs, this function returns an integer error code and the value pointed to by <em>job_contact</em>. In addition to the error codes described below, any <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> value may be returned as a cause for the job to fail.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="gad57dfb7787e8a6d691a2772e1845315c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_request_with_info </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>description</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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a job request to a GRAM service with extensions-aware callback. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gad57dfb7787e8a6d691a2772e1845315c" title="Send a job request to a GRAM service with extensions-aware callback.">globus_gram_client_register_job_request_with_info()</a> function sends a GRAM protocol message to a service to request that it start a job on behalf of the client.</p>
<p>If <a class="el" href="group__globus__gram__client__job__functions.html#gad57dfb7787e8a6d691a2772e1845315c" title="Send a job request to a GRAM service with extensions-aware callback.">globus_gram_client_register_job_request_with_info()</a> determines that this request could not be processed before contacting the gatekeeper (for example, a malformed <em>resource_manager_contact</em>), it will return an error, and the <em>callback</em> function will not be called. Otherwise, the success or failure an be determined by the <em>operation_failure_code</em> parameter to the function pointed to by the <em>callback</em> parameter. The difference between this function and <em><a class="el" href="group__globus__gram__client__job__functions.html#gac67ffcb833bb39a7df704bb7105c0834" title="Send a job request to a GRAM service.">globus_gram_client_register_job_request()</a></em> is the function signature of the callback function.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact. </td></tr>
    <tr><td class="paramname">description</td><td>A pointer to a string containing the job request information formatted in RSL syntax. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A GRAM listener contact that the job manager will send job state notification messages to. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the gatekeeper. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">callback</td><td>A pointer to a function to call when the job_request request has completed or failed. </td></tr>
    <tr><td class="paramname">callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#gad57dfb7787e8a6d691a2772e1845315c" title="Send a job request to a GRAM service with extensions-aware callback.">globus_gram_client_register_job_request_with_info()</a> returns GLOBUS_SUCCESS and the <em>callback</em> function will be called once the job request operation completes. If an error occurs, this function returns an integer error code and the function pointed to by the <em>callback</em> parameter will not be called.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="ga85bc82c2c2f78ff80c5638a2bc3cbff6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_request_with_info </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>resource_manager_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>description</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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</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"><a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *&#160;</td>
          <td class="paramname"><em>info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a job request to a GRAM service and parse extensions in the response. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga85bc82c2c2f78ff80c5638a2bc3cbff6" title="Send a job request to a GRAM service and parse extensions in the response.">globus_gram_client_job_request_with_info()</a> function sends a GRAM protocol message to a service to request that it start a job on behalf of the client. Unlike, <a class="el" href="group__globus__gram__client__job__functions.html#gad57dfb7787e8a6d691a2772e1845315c" title="Send a job request to a GRAM service with extensions-aware callback.">globus_gram_client_register_job_request_with_info()</a>, <a class="el" href="group__globus__gram__client__job__functions.html#ga85bc82c2c2f78ff80c5638a2bc3cbff6" title="Send a job request to a GRAM service and parse extensions in the response.">globus_gram_client_job_request_with_info()</a> blocks until the job request has been processed by the service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">resource_manager_contact</td><td>A NULL-terminated character string containing a <a class="el" href="globus_gram_resource_manager_contact.html">GRAM contact</a> that this function will contact. </td></tr>
    <tr><td class="paramname">description</td><td>A pointer to a string containing the job request information formatted in RSL syntax. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A GRAM listener contact that the job manager will send job state notification messages to. </td></tr>
    <tr><td class="paramname">job_contact</td><td>An output parameter pointing to a string that will be set to the job contact for this job. This value will only be set if the job request is successful or the two-phase commit protocol is being used and the return code is <em>GLOBUS_GRAM_PROTOCOL_ERROR_WAITING_FOR_COMMIT</em>. </td></tr>
    <tr><td class="paramname">info</td><td>An output parameter pointing to a structure to hold the extensions in the GRAM response. The caller is responsible for destroying this by calling the <a class="el" href="group__globus__gram__client.html#gacdaed37c816578a1d27edf71346d68f1" title="Free memory associated with a globus_gram_client_job_info_t structure.">globus_gram_client_job_info_destroy()</a> function.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#ga85bc82c2c2f78ff80c5638a2bc3cbff6" title="Send a job request to a GRAM service and parse extensions in the response.">globus_gram_client_job_request_with_info()</a> returns GLOBUS_SUCCESS and modifies the values pointed to by <em>job_contact</em> and <em>info</em> as described above. If an error occurs, this function returns an integer error code and the value pointed to by <em>job_contact</em>. In addition to the error codes described below, any <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> value may be returned as a cause for the job to fail.</dd></dl>
<dl class="retval"><dt>Return values</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>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7f45e141e1c09053f0c4990f52deb533"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_cancel </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>job_contact</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cancel a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533" title="Cancel a GRAM job.">globus_gram_client_job_cancel()</a> function cancels a GRAM job. Depending on the job's current state, this cancellation may be immediate or require a delay for interacting with the LRM servicing the job. Notification when the job has been successfully canceled will be sent to all client contacts registered for notifications after the cancellation has been completely processed. Unlike, <a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a>, <a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533" title="Cancel a GRAM job.">globus_gram_client_job_cancel()</a> blocks until the job cancel request has been processed by the service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>A NULL-terminated character string containing a GRAM job contact that this function will contact to cancel the job.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon succes, <a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533" title="Cancel a GRAM job.">globus_gram_client_job_cancel()</a> returns <em>GLOBUS_SUCCESS</em> if the cancellation was successful posted to the service. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533" title="Cancel a GRAM job.">globus_gram_client_job_cancel()</a> returns one of the <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> values values indicating why the client could not cancel the job.</dd></dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga20303663e18baf3721797485ae74af1d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_cancel </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"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cancel a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a> function sends a message to a GRAM service to cancel a GRAM job. Depending on the job's current state, this cancellation may be immediate or require a delay for interacting with the LRM servicing the job. In either case, this function returns as soon as it is able to start sending the message. Notification when the job has been successfully canceled will be sent to all client contacts registered for notifications after the cancellation has been completely processed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>A NULL-terminated character string containing a GRAM job contact that this function will contact to cancel the job. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the job_request request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon succes, <a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a> returns <em>GLOBUS_SUCCESS</em> if the cancellation was successful posted to the service. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a> returns one an integer error code indicating why it could not cancel the job.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#ga7f45e141e1c09053f0c4990f52deb533" title="Cancel a GRAM job.">globus_gram_client_job_cancel()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="gab3b9aabe847525f8e75098ac9124ea2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_signal </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"><a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a>&#160;</td>
          <td class="paramname"><em>signal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>signal_arg</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a signal a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gab3b9aabe847525f8e75098ac9124ea2f" title="Send a signal a GRAM job.">globus_gram_client_job_signal()</a> function sends a signal message to a job managed by the GRAM service. Signals consist of a signal number and an optional string argument. The meanings of the signals supported by the GRAM job manager are defined in the GRAM Protocol documentation. Unlike <a class="el" href="group__globus__gram__client__job__functions.html#ga971c36294b1fc70eb124644da72029ce" title="Send a signal a GRAM job.">globus_gram_client_register_job_signal()</a>, this function blocks until the signal has been delivered and acknowledged by the GRAM service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job manager to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">signal</td><td>The signal code to send to the job manager. </td></tr>
    <tr><td class="paramname">signal_arg</td><td>Parameters for the signal, as described in the documentation for the <a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a> enumeration. </td></tr>
    <tr><td class="paramname">job_status</td><td>An output parameter pointing to an integer to set to the status of the job after the signal has been processed. </td></tr>
    <tr><td class="paramname">failure_code</td><td>An output parameter pointing to an integer to set to the reason why the job has failed if the value pointed to by <em>job_status</em> is set to <em>GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED</em> by this function.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__job__functions.html#gab3b9aabe847525f8e75098ac9124ea2f" title="Send a signal a GRAM job.">globus_gram_client_job_signal()</a> returns GLOBUS_SUCCESS after sending the signal and receiving a response and modifies the <em>job_status</em> and <em>failure_code</em> parameters as described above. If an error occurs, this function returns an integer error code indicating why the client could not signal the job.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#ga971c36294b1fc70eb124644da72029ce" title="Send a signal a GRAM job.">globus_gram_client_register_job_signal()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga971c36294b1fc70eb124644da72029ce"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_signal </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"><a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a>&#160;</td>
          <td class="paramname"><em>signal</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>signal_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a signal a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga971c36294b1fc70eb124644da72029ce" title="Send a signal a GRAM job.">globus_gram_client_register_job_signal()</a> function sends a signal message to a job managed by the GRAM service. Signals consist of a signal number and an optional string argument. The meanings of the signals supported by the GRAM job manager are defined in the GRAM Protocol documentation. This function returns as soon as it has determined that its parameters are valid and it has begun to send the message to the GRAM service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job manager to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">signal</td><td>The signal code to send to the job manager. </td></tr>
    <tr><td class="paramname">signal_arg</td><td>Parameters for the signal, as described in the documentation for the <a class="elRef" href="group__globus__gram__protocol__job__signal.html#ga7f97d16875a469bdbcc608919bbab2e1">globus_gram_protocol_job_signal_t</a> enumeration. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the signal request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, globus_gram_client_job_register_signal() returns GLOBUS_SUCCESS after beginnning to send the signal to the GRAM job and registers the <em>register_callback</em> function to be called once that has completed. If an error occurs, this function returns an integer error code indicating why the client could not signal the job.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#ga971c36294b1fc70eb124644da72029ce" title="Send a signal a GRAM job.">globus_gram_client_register_job_signal()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="ga962d23aaddd50c311c056855f802b3e8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_status </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">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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a status query to a GRAM job. </p>
<p>The globus_gram_client_status() function queries the current status of the job associated with the job contact, returning its current status, as well as the job's failure reason if it has failed in this function's return parameters. This function blocks until the service has responded to the status query.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to query. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">job_status</td><td>An output parameter that points to an integer to be set to the current status of the job named by the <em>job_contact</em> parameter. </td></tr>
    <tr><td class="paramname">failure_code</td><td>An output parameter that points to an integer to be set to the reason why the job failed if its current status is <em>GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED</em>. If the job has not failed, the value will be set to 0.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga962d23aaddd50c311c056855f802b3e8" title="Send a status query to a GRAM job.">globus_gram_client_job_status()</a> function returns <em>GLOBUS_SUCCESS</em>, sends a job state query to the job named by <em>job_contact</em> and parses the service response, modifying the values pointed to by <em>job_status</em> and <em>failure_code</em> as described above. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga962d23aaddd50c311c056855f802b3e8" title="Send a status query to a GRAM job.">globus_gram_client_job_status()</a> returns an integer error code.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="gae690150b2ad9ff9ea5235dff50e382de"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_status </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"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a status query to a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gae690150b2ad9ff9ea5235dff50e382de" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status()</a> function initiates a query of the current status of the job associated with the <em>job</em> contact parameter. The job's status and failure code are passed to the function pointed to by the <em>register_callback</em> parameter. This function returns as soon as it has begun requesting the job status.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to query. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the status request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#gae690150b2ad9ff9ea5235dff50e382de" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status()</a> function returns <em>GLOBUS_SUCCESS</em> and begins to send a job state query to the job named by <em>job_contact</em> and registers the function pointed to by the <em>register_callback</em> parameter to be called once the status query terminates or fails. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#gae690150b2ad9ff9ea5235dff50e382de" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status()</a> returns an integer error code.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</td><td>Null parameter </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, and <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada886cdedbde30e16f277df62da20c58b3">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</a>.</p>

</div>
</div>
<a class="anchor" id="ga3a9220670909b592aea574c3c4e2ead8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_status_with_info </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"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>info_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a status query to a GRAM job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga3a9220670909b592aea574c3c4e2ead8" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status_with_info()</a> function initiates a query of the current status of the job associated with the <em>job</em> contact parameter. Job information is returned via the <em>job_info</em> parameter passed to the function pointed to by the <em>info_callback</em> parameter. This function returns as soon as it has begun requesting the job status.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to query. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">info_callback</td><td>A pointer to a function to call when the status request has completed or failed. </td></tr>
    <tr><td class="paramname">callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>info_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga3a9220670909b592aea574c3c4e2ead8" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status_with_info()</a> function returns <em>GLOBUS_SUCCESS</em> and begins to send a job state query to the job named by <em>job_contact</em> and registers the function pointed to by the <em>info_callback</em> parameter to be called once the status query terminates or fails. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga3a9220670909b592aea574c3c4e2ead8" title="Send a status query to a GRAM job.">globus_gram_client_register_job_status_with_info()</a> returns an integer error code.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</td><td>Null parameter </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, and <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada886cdedbde30e16f277df62da20c58b3">GLOBUS_GRAM_PROTOCOL_ERROR_NULL_PARAMETER</a>.</p>

</div>
</div>
<a class="anchor" id="gade7af50c37b445cc7d0b30e78ba9c4f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_status_with_info </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"><a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *&#160;</td>
          <td class="paramname"><em>info</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Send a status query to a GRAM job. </p>
<p>The globus_gram_client_status_with_info() function queries the current status of the job associated with the job contact, returning its current status, as well as the job's failure reason if it has failed in this function's return parameters. This function blocks until the service has responded to the status query.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to query. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">info</td><td>An output parameter that points to a globus_gram_client_job_info_t structure which will be populated with the state information associated with the job named by the <em>job_contact</em> parameter. The caller is responsible for calling <a class="el" href="group__globus__gram__client.html#gacdaed37c816578a1d27edf71346d68f1" title="Free memory associated with a globus_gram_client_job_info_t structure.">globus_gram_client_job_info_destroy()</a> to free the state pointed to by this parameter if this function returns <em>GLOBUS_SUCCESS</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#gade7af50c37b445cc7d0b30e78ba9c4f0" title="Send a status query to a GRAM job.">globus_gram_client_job_status_with_info()</a> function returns <em>GLOBUS_SUCCESS</em>, sends a job state query to the job named by <em>job_contact</em> and parses the service response, modifying the structure pointed to by <em>info</em> as described above. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#gade7af50c37b445cc7d0b30e78ba9c4f0" title="Send a status query to a GRAM job.">globus_gram_client_job_status_with_info()</a> returns an integer error code.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga7eed82a7a7ed3b48fdd175acebcfa6a9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_callback_register </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">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_contact</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a new callback contact to be notified for job state changes. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga7eed82a7a7ed3b48fdd175acebcfa6a9" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_job_callback_register()</a> function contacts a GRAM service managing a job and instructs it to send subsequent job state callbacks to the client listening for callbacks at the contact url named by the <em>callback_contact</em> parameter. This function blocks until the registration operation either completes or exits.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A URL string containing a GRAM client callback. This string is normally be generated by a process calling <a class="el" href="group__globus__gram__client__callback.html#gad3640c374ae41f8938b48ee568b701ac" title="Begin listening for job state change callbacks.">globus_gram_client_callback_allow()</a>. </td></tr>
    <tr><td class="paramname">job_status</td><td>An output parameter pointing to an integer to set to the status of the job after the registration message has been processed. </td></tr>
    <tr><td class="paramname">failure_code</td><td>An output parameter that points to an integer to be set to the reason why the job failed if its current status is <em>GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED</em>. If the job has not failed, the value will be set to 0.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga7eed82a7a7ed3b48fdd175acebcfa6a9" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_job_callback_register()</a> function returns <em>GLOBUS_SUCCESS</em>, sends a registration request the job named by <em>job_contact</em> and parses the service response, modifying the values pointed to by the <em>job_status</em> and <em>failure_code</em> parameters as described above. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga7eed82a7a7ed3b48fdd175acebcfa6a9" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_job_callback_register()</a> returns an integer error code indicating why it can't register the callback contact. The return code may be any value defined by the <em>globus_gram_protocol_error_t</em> enumeration in addition to those listed below.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="gaf60bd1ea77d35c07982b88ab492a0244"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_callback_unregister </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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</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>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unregister a callback contact to stop job state change notifications. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#gaf60bd1ea77d35c07982b88ab492a0244" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_job_callback_unregister()</a> function contacts a GRAM service managing a job and instructs it to stop sending job state callbacks to the client listening for callbacks at the contact url named by the <em>callback_contact</em> parameter. This function blocks until the unregistration operation either completes or exits. It is possible that callbacks related to the job arrive at the contact after this function returns depending on network delays.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A URL string containing a GRAM client callback. This string is normally be generated by a process calling <a class="el" href="group__globus__gram__client__callback.html#gad3640c374ae41f8938b48ee568b701ac" title="Begin listening for job state change callbacks.">globus_gram_client_callback_allow()</a>. </td></tr>
    <tr><td class="paramname">job_status</td><td>An output parameter pointing to an integer to set to the status of the job after the registration message has been processed. </td></tr>
    <tr><td class="paramname">failure_code</td><td>An output parameter that points to an integer to be set to the reason why the job failed if its current status is <em>GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED</em>. If the job has not failed, the value will be set to 0.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#gaf60bd1ea77d35c07982b88ab492a0244" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_job_callback_unregister()</a> function returns <em>GLOBUS_SUCCESS</em>, sends an unregister request the job named by <em>job_contact</em> and parses the service response, modifying the values pointed to by the <em>job_status</em> and <em>failure_code</em> parameters as described above. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#gaf60bd1ea77d35c07982b88ab492a0244" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_job_callback_unregister()</a> returns an integer error code indicating why it can't unregister the callback contact. The return code may be any value defined by the <em>globus_gram_protocol_error_t</em> enumeration in addition to those listed below.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga657a99512c240a5d0c4daaa6749466a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_job_refresh_credentials </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">gss_cred_id_t&#160;</td>
          <td class="paramname"><em>creds</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delegate a new credential to a job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5" title="Delegate a new credential to a job.">globus_gram_client_job_refresh_credentials()</a> function sends a "renew" signal to a GRAM service and then initiates the delegation of a new credential to the job manager and job. This prevents errors that can occur when a credential expires. This function blocks until the delegation has completed or failed.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">creds</td><td>A GSSAPI credential handle which will be used to authenticate with the job manager and sign the delegated credential. This parameter's value may be set to <em>GSS_C_NO_CREDENTIAL</em> to indicate the desire to use this process's default credential.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5" title="Delegate a new credential to a job.">globus_gram_client_job_refresh_credentials()</a> function returns <em>GLOBUS_SUCCESS</em>, sends an proxy renew request the job named by <em>job_contact</em>, parses the service response and performs a GSSAPI delegation to send a new credential to the job service. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5" title="Delegate a new credential to a job.">globus_gram_client_job_refresh_credentials()</a> returns an integer error code indicating why it can't refresh the job service's credential. The return code may be any value defined by the <em>globus_gram_protocol_error_t</em> enumeration in addition to those listed below.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0">globus_cond_wait()</a>, <a class="elRef" href="group__globus__mutex.html#ga053b5f9b263f11b7305efdbee881bf5d">globus_mutex_lock()</a>, and <a class="elRef" href="group__globus__mutex.html#ga8074266ebb8c3359a6078ffe654cc531">globus_mutex_unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="ga3681ebe5e010e998eb8cd04d00e9a1b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_refresh_credentials </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">gss_cred_id_t&#160;</td>
          <td class="paramname"><em>creds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delegate a new credential to a job. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga3681ebe5e010e998eb8cd04d00e9a1b4" title="Delegate a new credential to a job.">globus_gram_client_register_job_refresh_credentials()</a> function sends a "renew" signal to a GRAM service and then initiates the delegation of a new credential to the job manager and job. This prevents errors that can occur when a credential expires. This function returns as soon as it has determined that its parameters are valid and it has begun to send the message to the GRAM service.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">creds</td><td>A GSSAPI credential handle which will be used to authenticate with the job manager and sign the delegated credential. This parameter's value may be set to <em>GSS_C_NO_CREDENTIAL</em> to indicate the desire to use this process's default credential. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the status request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5" title="Delegate a new credential to a job.">globus_gram_client_job_refresh_credentials()</a> function returns <em>GLOBUS_SUCCESS</em> and begins sending the "renew" request to the GRAM service. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga657a99512c240a5d0c4daaa6749466a5" title="Delegate a new credential to a job.">globus_gram_client_job_refresh_credentials()</a> returns an integer error code indicating why it can't refresh the job service's credential. The return code may be any value defined by the <em>globus_gram_protocol_error_t</em> enumeration in addition to those listed below.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="ga1e6a7c618b2822a93612ba55f85bd787"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_callback_registration </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">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_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Register a new callback contact to be notified for job state changes. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga1e6a7c618b2822a93612ba55f85bd787" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_register_job_callback_registration()</a> function initiates the protocol to contact a GRAM service and request that it send subsequent job state callbacks to the client listening for callbacks at the contact url named by the <em>callback_contact</em> parameter. This function returns as soon as it has validated its parameters and begun sending the GRAM message. When the registration is complete, the function pointed to by <em>register_callback</em> is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">job_state_mask</td><td>A bitwise-or of the GLOBUS_GRAM_PROTOCOL_JOB_STATE_* states that the job manager will send job state notification messages for to the contact named by <em>callback_contact</em>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A URL string containing a GRAM client callback. This string is normally be generated by a process calling <a class="el" href="group__globus__gram__client__callback.html#gad3640c374ae41f8938b48ee568b701ac" title="Begin listening for job state change callbacks.">globus_gram_client_callback_allow()</a>. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the registration request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga1e6a7c618b2822a93612ba55f85bd787" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_register_job_callback_registration()</a> function returns <em>GLOBUS_SUCCESS</em>, begins to send a registration request to the job named by <em>job_contact</em>, and schedules the <em>register_callback</em> to be called once the registration completes or fails. If an error occurs, this function returns an integer error code indicating why it can't process the request.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#ga7eed82a7a7ed3b48fdd175acebcfa6a9" title="Register a new callback contact to be notified for job state changes.">globus_gram_client_job_callback_register()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
<a class="anchor" id="ga878c91da66157e255979e01728fb3adc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_register_job_callback_unregistration </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">const char *&#160;</td>
          <td class="paramname"><em>callback_contact</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__attr.html#gab906c3d70b18b429bac1b0ae8a7304da">globus_gram_client_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a>&#160;</td>
          <td class="paramname"><em>register_callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>register_callback_arg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unregister a callback contact to stop job state change notifications. </p>
<p>The <a class="el" href="group__globus__gram__client__job__functions.html#ga878c91da66157e255979e01728fb3adc" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_register_job_callback_unregistration()</a> function initiates the protocol to contact a GRAM service and request that it stop sending job state callbacks to the client listening at the contact url named by the <em>callback_contact</em> parameter. This function returns as soon as it has validated its parameters and begun sending the GRAM message. When the unregistration is complete, the function pointed to by <em>register_callback</em> is called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">job_contact</td><td>The job contact string of the job to contact. This is the same value returned from <a class="el" href="group__globus__gram__client__job__functions.html#gaa314342a1c6627039c269bc4574ad371" title="Send a job request to a GRAM service.">globus_gram_client_job_request()</a>. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>A URL string containing a GRAM client callback. This string is normally be generated by a process calling <a class="el" href="group__globus__gram__client__callback.html#gad3640c374ae41f8938b48ee568b701ac" title="Begin listening for job state change callbacks.">globus_gram_client_callback_allow()</a>. </td></tr>
    <tr><td class="paramname">attr</td><td>A set of client attributes to use to contact the job. If no custom attributes are needed, the caller should pass the value <em>GLOBUS_GRAM_CLIENT_NO_ATTR</em>. </td></tr>
    <tr><td class="paramname">register_callback</td><td>A pointer to a function to call when the registration request has completed or failed. </td></tr>
    <tr><td class="paramname">register_callback_arg</td><td>A pointer to application-specific data which will be passed to the function pointed to by <em>register_callback</em> as its <em>user_callback_arg</em> parameter.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, the <a class="el" href="group__globus__gram__client__job__functions.html#ga878c91da66157e255979e01728fb3adc" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_register_job_callback_unregistration()</a> function returns <em>GLOBUS_SUCCESS</em>, begins sending an unregister request to the job named by <em>job_contact</em> and schedules the function pointed to by the <em>register_callback</em> parameter to be called. If an error occurs, <a class="el" href="group__globus__gram__client__job__functions.html#ga878c91da66157e255979e01728fb3adc" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_register_job_callback_unregistration()</a> returns an integer error code indicating why it can't process the unregister request.</dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">GLOBUS_GRAM_SUCCESS</td><td>Success </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_PROTOCOL_FAILED</td><td>Protocol error </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_JOB_CONTACT</td><td>Invalid job contact </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_INVALID_REQUEST</td><td>Invalid request </td></tr>
    <tr><td class="paramname">GLOBUS_GRAM_PROTOCOL_ERROR_NO_RESOURCES</td><td>No resources</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__job__functions.html#gaf60bd1ea77d35c07982b88ab492a0244" title="Unregister a callback contact to stop job state change notifications.">globus_gram_client_job_callback_unregister()</a> </dd></dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada26e43b670dda06be33dd271ec456299c">GLOBUS_GRAM_PROTOCOL_ERROR_MALLOC_FAILED</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<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>