<!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 Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data 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> | <a href="#enum-members">Enumerations</a> | <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="   <a href="main.html" target="_top">View documentation without frames</a><br>  <a href="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/>   <a class="el" href="group__globus__callback__spaces.html#ggac5c2e2ee259e3bceaea0b201bcc3efaaa555e447a5b2006173a94d68f793b4913">GLOBUS_CALLBACK_SPACE_BEHAVIOR_SINGLE</a>, <br/>   <a class="el" href="group__globus__callback__spaces.html#ggac5c2e2ee259e3bceaea0b201bcc3efaaa83bce54e7eeeaa2ab7caa06894cd13a2">GLOBUS_CALLBACK_SPACE_BEHAVIOR_SERIALIZED</a>, <br/>   <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> </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> </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> </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> * </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> </td> <td class="paramname"><em>attr</em> </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> </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> </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> * </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> </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> </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> </td> <td class="paramname"><em>behavior</em> </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> </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> * </td> <td class="paramname"><em>behavior</em> </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> * </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> </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> </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>