Sophie

Sophie

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

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__callback.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Job state callbacks</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structglobus__gram__client__job__info__s.html">globus_gram_client_job_info_s</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf5dcd614490f0ee7c988340e32370045"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#gaf5dcd614490f0ee7c988340e32370045">globus_gram_client_callback_func_t</a> )(void *user_callback_arg, char *job_contact, int state, int errorcode)</td></tr>
<tr class="separator:gaf5dcd614490f0ee7c988340e32370045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0db31ad82a8adcce58d6dcdec15385a7"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structglobus__gram__client__job__info__s.html">globus_gram_client_job_info_s</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a></td></tr>
<tr class="separator:ga0db31ad82a8adcce58d6dcdec15385a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga960f6dfae5211e5e9786ed5f39bbae63"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a> )(void *user_callback_arg, const char *job_contact, <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *job_info)</td></tr>
<tr class="separator:ga960f6dfae5211e5e9786ed5f39bbae63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa8f302b803cc48318f333bb59f7c2daa"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#gaa8f302b803cc48318f333bb59f7c2daa">globus_gram_client_nonblocking_func_t</a> )(void *user_callback_arg, <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> operation_failure_code, const char *job_contact, <a class="elRef" href="group__globus__gram__protocol__job__state.html#ga7ee774d35df5e9243f18c998aef47936">globus_gram_protocol_job_state_t</a> job_state, <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> job_failure_code)</td></tr>
<tr class="separator:gaa8f302b803cc48318f333bb59f7c2daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad3640c374ae41f8938b48ee568b701ac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#gad3640c374ae41f8938b48ee568b701ac">globus_gram_client_callback_allow</a> (<a class="el" href="group__globus__gram__client__callback.html#gaf5dcd614490f0ee7c988340e32370045">globus_gram_client_callback_func_t</a> callback_func, void *user_callback_arg, char **callback_contact)</td></tr>
<tr class="separator:gad3640c374ae41f8938b48ee568b701ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab6455d6acd7731e4c3e18baefe50d802"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#gab6455d6acd7731e4c3e18baefe50d802">globus_gram_client_info_callback_allow</a> (<a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63">globus_gram_client_info_callback_func_t</a> callback_func, void *user_callback_arg, char **callback_contact)</td></tr>
<tr class="separator:gab6455d6acd7731e4c3e18baefe50d802"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad044020b703ac837795f19ca7fd11cc8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__gram__client__callback.html#gad044020b703ac837795f19ca7fd11cc8">globus_gram_client_callback_disallow</a> (char *callback_contact)</td></tr>
<tr class="separator:gad044020b703ac837795f19ca7fd11cc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf5dcd614490f0ee7c988340e32370045"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(*  globus_gram_client_callback_func_t)(void *user_callback_arg, char *job_contact, int state, int errorcode)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signature for GRAM state notification callback functions. </p>
<p>The globus_gram_client_callback_func_t type describes the function signature for job state callbacks. A pointer to a function of this type is passed to the <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> function to create a callback contact. The contact string can be passed to <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> or <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> to let the job management service know to where to send information on GRAM job state changes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_callback_arg</td><td>A pointer to application-specific data. </td></tr>
    <tr><td class="paramname">job_contact</td><td>A string containing the job contact. This string indicates which job this callback is referring to. It should in most cases match the return value <em>job_contact</em> from a call to <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> or in the <em>job_contact</em> parameter to the globus_gram_client_nonblocking_func_t used with <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>. However, in some cases, the port number in the job contact URL may change if the job manager is restarted. </td></tr>
    <tr><td class="paramname">state</td><td>The new state (one of the <a class="elRef" href="group__globus__gram__protocol__job__state.html#ga7ee774d35df5e9243f18c998aef47936">globus_gram_protocol_job_state_t</a> values) of the job. </td></tr>
    <tr><td class="paramname">errorcode</td><td>The error code if the <em>state</em> parameter is equal to GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0db31ad82a8adcce58d6dcdec15385a7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="structglobus__gram__client__job__info__s.html">globus_gram_client_job_info_s</a>
 <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Extensible job information structure. </p>
<p>The <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7" title="Extensible job information structure.">globus_gram_client_job_info_t</a> data type is used to pass protocol extensions along with the standard job status information included in the GRAM2 protocol. This structure contains the information returned in job state callbacks plus a hash table of extension entries that contain <a class="elRef" href="group__globus__gram__protocol__io.html#ga3469e6c745f6e13ed624fd955a5017da">globus_gram_protocol_extension_t</a> name-value pairs. </p>

</div>
</div>
<a class="anchor" id="ga960f6dfae5211e5e9786ed5f39bbae63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(*  globus_gram_client_info_callback_func_t)(void *user_callback_arg, const char *job_contact, <a class="el" href="group__globus__gram__client__callback.html#ga0db31ad82a8adcce58d6dcdec15385a7">globus_gram_client_job_info_t</a> *job_info)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signature for GRAM state notification callback functions with extension support. </p>
<p>The <a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63" title="Signature for GRAM state notification callback functions with extension support.">globus_gram_client_info_callback_func_t</a> type describes the function signature for job state callbacks that carry any GRAM protocol extensions beyond the set used in GRAM2. A pointer to a function of this type is passed to the <a class="el" href="group__globus__gram__client__callback.html#gab6455d6acd7731e4c3e18baefe50d802" title="Begin listening for job state change callbacks.">globus_gram_client_info_callback_allow()</a> function to create a callback contact that can handle extensions. The contact string can be passed to <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> or <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> to let the job management service know to where to send information on GRAM job state changes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_callback_arg</td><td>Application-specific callback information. </td></tr>
    <tr><td class="paramname">job_contact</td><td>Job this information is related to </td></tr>
    <tr><td class="paramname">job_info</td><td>Job state and extensions</td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__globus__gram__client__callback.html#gab6455d6acd7731e4c3e18baefe50d802" title="Begin listening for job state change callbacks.">globus_gram_client_info_callback_allow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaa8f302b803cc48318f333bb59f7c2daa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(*  globus_gram_client_nonblocking_func_t)(void *user_callback_arg, <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> operation_failure_code, const char *job_contact, <a class="elRef" href="group__globus__gram__protocol__job__state.html#ga7ee774d35df5e9243f18c998aef47936">globus_gram_protocol_job_state_t</a> job_state, <a class="elRef" href="group__globus__gram__protocol__error.html#ga863534740ac3b78cff476a36d197bfad">globus_gram_protocol_error_t</a> job_failure_code)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Signature for callbacks signalling completion of non-blocking GRAM requests. </p>
<p>The <a class="el" href="group__globus__gram__client__callback.html#ga960f6dfae5211e5e9786ed5f39bbae63" title="Signature for GRAM state notification callback functions with extension support.">globus_gram_client_info_callback_func_t</a> type describes the function signature for callbacks which indicate that a GRAM operation has completed. A pointer to a function of this type is passed to the following functions:</p>
<ul>
<li><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></li>
<li><a class="el" href="group__globus__gram__client__job__functions.html#ga20303663e18baf3721797485ae74af1d" title="Cancel a GRAM job.">globus_gram_client_register_job_cancel()</a></li>
<li><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></li>
<li><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></li>
<li><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></li>
<li><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></li>
<li><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></li>
<li><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></li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_callback_arg</td><td>Application-specific callback information. </td></tr>
    <tr><td class="paramname">operation_failure_code</td><td>The result of the nonblocking operation , indicating whether the operation was processed by the job manager successfully or not. </td></tr>
    <tr><td class="paramname">job_contact</td><td>A string containing the job contact associated with this non-blocking operation. </td></tr>
    <tr><td class="paramname">job_state</td><td>The state (one of the <a class="elRef" href="group__globus__gram__protocol__job__state.html#ga7ee774d35df5e9243f18c998aef47936">globus_gram_protocol_job_state_t</a> values) of the job related to this non-blocking operation. </td></tr>
    <tr><td class="paramname">job_failure_code</td><td>The error code of the job request if the job_state parameter is GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED. Otherwise, its value is undefined. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gad3640c374ae41f8938b48ee568b701ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_callback_allow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__gram__client__callback.html#gaf5dcd614490f0ee7c988340e32370045">globus_gram_client_callback_func_t</a>&#160;</td>
          <td class="paramname"><em>callback_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_callback_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>callback_contact</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Begin listening for job state change callbacks. </p>
<p>The <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> function initializes a GRAM protocol service in the current process which will process job state updates from GRAM Job Managers. The URL to contact this service is returned and may be used with 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> or globus_gram_client_callback_register() family of functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_func</td><td>A pointer to a function to call when a new job state update is received. </td></tr>
    <tr><td class="paramname">user_callback_arg</td><td>A pointer to application-specific data which is passed to the function pointed to by <em>callback_func</em> as its <em>user_callback_arg</em> parameter. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>An output parameter that points to a string that will be allocated and set to the URL that the GRAM callback listener is waiting on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <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> returns <em>GLOBUS_SUCCESS</em> opens a TCP port to accept job state updates and modifies the value pointed to by the <em>callback_contact</em> parameter as described above. If an error occurs, <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> 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_NULL_PARAMETER</td><td>Null parameter </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_MALLOC_FAILED</td><td>Out of memory </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__io.html#ga5672d838f7c38e983d09c4c73e00b0eb">globus_gram_protocol_allow_attach()</a>, <a class="elRef" href="group__globus__gram__protocol__io.html#ga439b63f5fba38e88262ec5fbc2626f31">globus_gram_protocol_callback_disallow()</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__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="gab6455d6acd7731e4c3e18baefe50d802"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_info_callback_allow </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_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_callback_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>callback_contact</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Begin listening for job state change callbacks. </p>
<p>The <a class="el" href="group__globus__gram__client__callback.html#gab6455d6acd7731e4c3e18baefe50d802" title="Begin listening for job state change callbacks.">globus_gram_client_info_callback_allow()</a> function initializes a GRAM protocol service in the current process which will process job state updates from GRAM Job Managers. The URL to contact this service is returned and may be used with 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> or <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> family of functions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_func</td><td>A pointer to a function to call when a new job state update is received. The function signature of this parameter supports GRAM protocol extensions. </td></tr>
    <tr><td class="paramname">user_callback_arg</td><td>A pointer to application-specific data which is passed to the function pointed to by <em>callback_func</em> as its <em>user_callback_arg</em> parameter. </td></tr>
    <tr><td class="paramname">callback_contact</td><td>An output parameter that points to a string that will be allocated and set to the URL that the GRAM callback listener is waiting on.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <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> returns <em>GLOBUS_SUCCESS</em> opens a TCP port to accept job state updates and modifies the value pointed to by the <em>callback_contact</em> parameter as described above. If an error occurs, <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> 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_NULL_PARAMETER</td><td>Null parameter </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_MALLOC_FAILED</td><td>Out of memory </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__io.html#ga5672d838f7c38e983d09c4c73e00b0eb">globus_gram_protocol_allow_attach()</a>, <a class="elRef" href="group__globus__gram__protocol__io.html#ga439b63f5fba38e88262ec5fbc2626f31">globus_gram_protocol_callback_disallow()</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__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="gad044020b703ac837795f19ca7fd11cc8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_gram_client_callback_disallow </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>callback_contact</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stop listening for job state change callbacks. </p>
<p>The <a class="el" href="group__globus__gram__client__callback.html#gad044020b703ac837795f19ca7fd11cc8" title="Stop listening for job state change callbacks.">globus_gram_client_callback_disallow()</a> function stops the GRAM protocol handler associated with a callback contact from receiving further messages. After this function returns, no further callbacks for this contact will be called. Furthermore, the network port associated with the protocol handler will be released.</p>
<p>This function can only be used to disable a callback contact created in the current process.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">callback_contact</td><td>A callback contact string that refers to a protocol handler in the current process.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Upon success, <a class="el" href="group__globus__gram__client__callback.html#gad044020b703ac837795f19ca7fd11cc8" title="Stop listening for job state change callbacks.">globus_gram_client_callback_disallow()</a> returns <em>GLOBUS_SUCCESS</em>, closes the network port associated with the <em>callback_contact</em> parameter and stops further callbacks from occurring. If an error occurs, <a class="el" href="group__globus__gram__client__callback.html#gad044020b703ac837795f19ca7fd11cc8" title="Stop listening for job state change callbacks.">globus_gram_client_callback_disallow()</a> 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_CALLBACK_NOT_FOUND</td><td>Callback not found </td></tr>
  </table>
  </dd>
</dl>

<p>References <a class="elRef" href="group__globus__gram__protocol__io.html#ga439b63f5fba38e88262ec5fbc2626f31">globus_gram_protocol_callback_disallow()</a>, <a class="elRef" href="group__globus__gram__protocol__error.html#gga863534740ac3b78cff476a36d197bfada3bbd9a0ee71fc4ce8780d5221a65ac3f">GLOBUS_GRAM_PROTOCOL_ERROR_CALLBACK_NOT_FOUND</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>
</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>