Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 5eb826aa4501ed8d8df68ed910a162ee > files > 37

globus-common-doc-14.6-1.fc15.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta name="robots" content="noindex">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<!-- THIS FILE IS AUTOMATICALLY GENERATED FROM THE GLOBUS SOURCE CODE
     DO NOT MODIFY.
-->
<title>Globus Reference Manual</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
    </ul>
  </div>
</div>
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
  initNavTree('group__globus__callback__spaces.html','');
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Defines</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Globus Callback Spaces</div>  </div>
<div class="ingroups"><a class="el" href="group__globus__callback.html">Globus Callback</a></div></div>
<div class="contents">

<p> 
 <a href="main.html" target="_top">View documentation without frames</a><br>
 <a href="index.html" target="_top">View documentation with frames</a><br>
   
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for Globus Callback Spaces:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__globus__callback__spaces.png" border="0" alt="" usemap="#group____globus____callback____spaces"/>
<map name="group____globus____callback____spaces" id="group____globus____callback____spaces">
<area shape="rect" id="node1" href="group__globus__callback.html" title=" &#160;&#160;&lt;a href=&quot;main.html&quot; target=&quot;_top&quot;&gt;View documentation without frames&lt;/a&gt;&lt;br&gt; &#160;&lt;a href=&quot;index..." alt="" coords="7,5,124,35"/></map>
</td></tr></table></center>
</div>
<h2><a name="define-members"></a>
Defines</h2>
<ul>
<li>#define <a class="el" href="group__globus__callback__spaces.html#gac4dbfeee48388b4b78abb15fdfb5620d">GLOBUS_CALLBACK_GLOBAL_SPACE</a>
</ul>
<h2><a name="enum-members"></a>
Enumerations</h2>
<ul>
<li>enum <a class="el" href="group__globus__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a> { <br/>
&#160;&#160;<a class="el" href="group__globus__callback__spaces.html#ggac5c2e2ee259e3bceaea0b201bcc3efaaa555e447a5b2006173a94d68f793b4913">GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE</a>, 
<br/>
&#160;&#160;<a class="el" href="group__globus__callback__spaces.html#ggac5c2e2ee259e3bceaea0b201bcc3efaaa83bce54e7eeeaa2ab7caa06894cd13a2">GLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED</a>, 
<br/>
&#160;&#160;<a class="el" href="group__globus__callback__spaces.html#ggac5c2e2ee259e3bceaea0b201bcc3efaaabe95b074b057afd9caad744ca316fd2e">GLOBUS_CALLBACK_SPACE_BEHAVIOR_THREADED</a>
<br/>
 }
</ul>
<h2><a name="func-members"></a>
Functions</h2>
<ul>
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga7221ad7cd5d4d61ad03e5cce42f6e0ff">globus_callback_space_init</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> *space, <a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> attr)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#gab7858315cda2711279b28e1cca047789">globus_callback_space_reference</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga2d6033dbe920cc774fcbea1f83ad5a4e">globus_callback_space_destroy</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#gad5f454d33a643f6ade211f2503ba605a">globus_callback_space_attr_init</a> (<a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> *attr)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga841592200c8a34e5fb125c1e962530b7">globus_callback_space_attr_destroy</a> (<a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> attr)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga84e7edaa81a33ebc97a527b1c618fd50">globus_callback_space_attr_set_behavior</a> (<a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> attr, <a class="el" href="group__globus__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a> behavior)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga19b2a1f4082449e43c964e9833c98132">globus_callback_space_attr_get_behavior</a> (<a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> attr, <a class="el" href="group__globus__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a> *behavior)
<li>globus_result_t <a class="el" href="group__globus__callback__spaces.html#ga4f196834eb7f366953c27ba3a43f2d5c">globus_callback_space_get</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> *space)
<li>int <a class="el" href="group__globus__callback__spaces.html#ga385aef912c30791d9fb9f689ba461ead">globus_callback_space_get_depth</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)
<li>globus_bool_t <a class="el" href="group__globus__callback__spaces.html#gafb085d7faf2134d3bfb2e4001175ad59">globus_callback_space_is_single</a> (<a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> space)
</ul>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 
 <a href="main.html" target="_top">View documentation without frames</a><br>
 <a href="index.html" target="_top">View documentation with frames</a><br>
  <hr/><h2>Define Documentation</h2>
<a class="anchor" id="gac4dbfeee48388b4b78abb15fdfb5620d"></a><!-- doxytag: member="globus_callback.h::GLOBUS_CALLBACK_GLOBAL_SPACE" ref="gac4dbfeee48388b4b78abb15fdfb5620d" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GLOBUS_CALLBACK_GLOBAL_SPACE</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Global callback space. </p>
<p>The 'global' space handle.</p>
<p>This is the default space handle implied if no spaces are explicitly created. </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="gac5c2e2ee259e3bceaea0b201bcc3efaa"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_behavior_t" ref="gac5c2e2ee259e3bceaea0b201bcc3efaa" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__globus__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Callback space behaviors describe how a space behaves. </p>
<p>In a non-threaded build all spaces exhibit a behavior == _BEHAVIOR_SINGLE. Setting a specific behavior in this case is ignored.</p>
<p>In a threaded build, _BEHAVIOR_SINGLE retains all the rules and behaviors of a non-threaded build while _BEHAVIOR_THREADED makes the space act as the global space.</p>
<p>Setting a space's behavior to _BEHAVIOR_SINGLE guarantees that the poll protection will always be there and all callbacks are serialized and only kicked out when polled for. In a threaded build, it is still necessary to poll for callbacks in a _BEHAVIOR_SINGLE space. (<a class="el" href="group__globus__cond.html#ga9b58106e5b1b2545ab45db0e3e4f98b0" title="Wait for a condition to be signalled.">globus_cond_wait()</a> will take care of this for you also)</p>
<p>Setting a space's behavior to _BEHAVIOR_SERIALIZED guarantees that the poll protection will always be there and all callbacks are serialized. In a threaded build, it is NOT necessary to poll for callbacks in a _BEHAVIOR_SERIALIZED space. Callbacks in this space will be delivered as soon as possible, but only one outstanding (and unblocked) callback will be allowed at any time.</p>
<p>Setting a space's behavior to _BEHAVIOR_THREADED allows the user to have the poll protection provided by spaces when built non-threaded, yet, be fully threaded when built threaded (where poll protection is not needed) </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="ggac5c2e2ee259e3bceaea0b201bcc3efaaa555e447a5b2006173a94d68f793b4913"></a><!-- doxytag: member="GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE" ref="ggac5c2e2ee259e3bceaea0b201bcc3efaaa555e447a5b2006173a94d68f793b4913" args="" -->GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE</em>&nbsp;</td><td>
<p>The default behavior. </p>
<p>Indicates that you always want poll protection and single threaded behavior (callbacks need to be explicitly polled for </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggac5c2e2ee259e3bceaea0b201bcc3efaaa83bce54e7eeeaa2ab7caa06894cd13a2"></a><!-- doxytag: member="GLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED" ref="ggac5c2e2ee259e3bceaea0b201bcc3efaaa83bce54e7eeeaa2ab7caa06894cd13a2" args="" -->GLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED</em>&nbsp;</td><td>
<p>Indicates that you want poll protection and all callbacks to be serialized (but they do not need to be polled for in a threaded build) </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="ggac5c2e2ee259e3bceaea0b201bcc3efaaabe95b074b057afd9caad744ca316fd2e"></a><!-- doxytag: member="GLOBUS_CALLBACK_SPACE_BEHAVIOR_THREADED" ref="ggac5c2e2ee259e3bceaea0b201bcc3efaaabe95b074b057afd9caad744ca316fd2e" args="" -->GLOBUS_CALLBACK_SPACE_BEHAVIOR_THREADED</em>&nbsp;</td><td>
<p>Indicates that you only want poll protection. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga7221ad7cd5d4d61ad03e5cce42f6e0ff"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_init" ref="ga7221ad7cd5d4d61ad03e5cce42f6e0ff" args="(globus_callback_space_t *space, globus_callback_space_attr_t attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> *&#160;</td>
          <td class="paramname"><em>space</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize a user space. </p>
<p>This creates a user space.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>storage for the initialized space handle. This must be destroyed with <a class="el" href="group__globus__callback__spaces.html#ga2d6033dbe920cc774fcbea1f83ad5a4e" title="Destroy a reference to a user space.">globus_callback_space_destroy()</a></td></tr>
    <tr><td class="paramname">attr</td><td>a space attr descibing desired behaviors. If GLOBUS_NULL, the default behavior of GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE is assumed. This attr is copied into the space, so it is acceptable to destroy the attr as soon as it is no longer needed</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT on NULL space</li>
<li>GLOBUS_CALLBACK_ERROR_MEMORY_ALLOC</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__globus__cond.html#gacca6f5cb093ac7aed78c91416f85843f" title="Set callback space associated with a condition variable attributeThe globus_condattr_setspace() funct...">globus_condattr_setspace()</a> </dd>
<dd>
 
 <a class="el" href="../../globus_io/html/group__attr.html#globus_io_attr_set_callback_space_anchor">
    globus_io_attr_set_callback_space()
 </a>
  </dd></dl>

</div>
</div>
<a class="anchor" id="gab7858315cda2711279b28e1cca047789"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_reference" ref="gab7858315cda2711279b28e1cca047789" args="(globus_callback_space_t space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_reference </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Take a reference to a space. </p>
<p>A library which has been 'given' a space to provide callbacks on would use this to take a reference on the user's space. This prevents mayhem should a user destroy a space before the library is done with it. This reference should be destroyed with <a class="el" href="group__globus__callback__spaces.html#ga2d6033dbe920cc774fcbea1f83ad5a4e" title="Destroy a reference to a user space.">globus_callback_space_destroy()</a> (think dup())</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>space to reference</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_SPACE</li>
<li>GLOBUS_SUCCESS </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga2d6033dbe920cc774fcbea1f83ad5a4e"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_destroy" ref="ga2d6033dbe920cc774fcbea1f83ad5a4e" args="(globus_callback_space_t space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a reference to a user space. </p>
<p>This will destroy a reference to a previously initialized space. Space will not actually be destroyed until all callbacks registered with this space have been run and unregistered (if the user has a handle to that callback) AND all references (from <a class="el" href="group__globus__callback__spaces.html#gab7858315cda2711279b28e1cca047789" title="Take a reference to a space.">globus_callback_space_reference()</a>) have been destroyed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>space to destroy, previously initialized by <a class="el" href="group__globus__callback__spaces.html#ga7221ad7cd5d4d61ad03e5cce42f6e0ff" title="Initialize a user space.">globus_callback_space_init()</a> or referenced with <a class="el" href="group__globus__callback__spaces.html#gab7858315cda2711279b28e1cca047789" title="Take a reference to a space.">globus_callback_space_reference()</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_SPACE</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__globus__callback__spaces.html#ga7221ad7cd5d4d61ad03e5cce42f6e0ff" title="Initialize a user space.">globus_callback_space_init()</a> </dd>
<dd>
<a class="el" href="group__globus__callback__spaces.html#gab7858315cda2711279b28e1cca047789" title="Take a reference to a space.">globus_callback_space_reference()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gad5f454d33a643f6ade211f2503ba605a"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_attr_init" ref="gad5f454d33a643f6ade211f2503ba605a" args="(globus_callback_space_attr_t *attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_attr_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a> *&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Initialize a space attr. </p>
<p>Currently, the only attr to set is the behavior. The default behavior associated with this attr is GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attr</td><td>storage for the intialized attr. Must be destroyed with <a class="el" href="group__globus__callback__spaces.html#ga841592200c8a34e5fb125c1e962530b7" title="Destroy a space attr.">globus_callback_space_attr_destroy()</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT on NULL attr</li>
<li>GLOBUS_CALLBACK_ERROR_MEMORY_ALLOC</li>
<li>GLOBUS_SUCCESS </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga841592200c8a34e5fb125c1e962530b7"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_attr_destroy" ref="ga841592200c8a34e5fb125c1e962530b7" args="(globus_callback_space_attr_t attr)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_attr_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_attr_t</a>&#160;</td>
          <td class="paramname"><em>attr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroy a space attr. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attr</td><td>attr to destroy, previously initialized with <a class="el" href="group__globus__callback__spaces.html#gad5f454d33a643f6ade211f2503ba605a" title="Initialize a space attr.">globus_callback_space_attr_init()</a></td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT on NULL attr</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__globus__callback__spaces.html#gad5f454d33a643f6ade211f2503ba605a" title="Initialize a space attr.">globus_callback_space_attr_init()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga84e7edaa81a33ebc97a527b1c618fd50"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_attr_set_behavior" ref="ga84e7edaa81a33ebc97a527b1c618fd50" args="(globus_callback_space_attr_t attr, globus_callback_space_behavior_t behavior)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_attr_set_behavior </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_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__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a>&#160;</td>
          <td class="paramname"><em>behavior</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the behavior of a space. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attr</td><td>attr to associate behavior with</td></tr>
    <tr><td class="paramname">behavior</td><td>desired behavior</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT</li>
<li>GLOBUS_SUCCESS</li>
</ul>
</dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group__globus__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa" title="Callback space behaviors describe how a space behaves.">globus_callback_space_behavior_t</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga19b2a1f4082449e43c964e9833c98132"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_attr_get_behavior" ref="ga19b2a1f4082449e43c964e9833c98132" args="(globus_callback_space_attr_t attr, globus_callback_space_behavior_t *behavior)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_attr_get_behavior </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#gad4d53fc479ecb547f3d7b2be6df8a2a3">globus_callback_space_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__callback__spaces.html#gac5c2e2ee259e3bceaea0b201bcc3efaa">globus_callback_space_behavior_t</a> *&#160;</td>
          <td class="paramname"><em>behavior</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get the behavior associated with an attr. </p>
<p>Note: for a non-threaded build, this will always pass back a behavior == GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">attr</td><td>attr on which to query behavior</td></tr>
    <tr><td class="paramname">behavior</td><td>storage for the behavior</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT</li>
<li>GLOBUS_SUCCESS </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga4f196834eb7f366953c27ba3a43f2d5c"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_get" ref="ga4f196834eb7f366953c27ba3a43f2d5c" args="(globus_callback_space_t *space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_callback_space_get </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a> *&#160;</td>
          <td class="paramname"><em>space</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the space of a currently running callback. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>storage for the handle to the space currently running</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_CALLBACK_ERROR_INVALID_ARGUMENT on NULL space</li>
<li>GLOBUS_CALLBACK_ERROR_NO_ACTIVE_CALLBACK</li>
<li>GLOBUS_SUCCESS </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga385aef912c30791d9fb9f689ba461ead"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_get_depth" ref="ga385aef912c30791d9fb9f689ba461ead" args="(globus_callback_space_t space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int globus_callback_space_get_depth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Retrieve the current nesting level of a space. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>The space to query.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>the current nesting level</li>
<li>-1 on invalid space </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gafb085d7faf2134d3bfb2e4001175ad59"></a><!-- doxytag: member="globus_callback.h::globus_callback_space_is_single" ref="gafb085d7faf2134d3bfb2e4001175ad59" args="(globus_callback_space_t space)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_bool_t globus_callback_space_is_single </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__callback.html#ga82637fa200d6ff891c747397a8eb0f38">globus_callback_space_t</a>&#160;</td>
          <td class="paramname"><em>space</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if the specified space is a single threaded behavior space. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">space</td><td>the space to query</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd><ul>
<li>GLOBUS_TRUE if space's behavior is _BEHAVIOR_SINGLE</li>
<li>GLOBUS_FALSE otherwise </li>
</ul>
</dd></dl>

</div>
</div>
</div>
</div>
  <div id="nav-path" class="navpath">
    <ul>
<hr>
<p align="center">
<a href="http://www.globus.org/toolkit/about.html" target="_top">about globus</a> |
<a href="http://www.globus.org/toolkit/" target="_top">globus toolkit</a> |
<a href="https://dev.globus.org/wiki/Welcome/" target="_top">dev.globus</a>
<br>
<br>
Comments? <a href="mailto:webmaster@globus.org">webmaster@globus.org</a>

</body>
</html>