<!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="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__gass__transfer__referral.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">Referrals</div> </div> </div> <div class="contents"> <p>The GASS Transfer API supports referring URL requests to alternate URLs via referrals. <a href="#details">More...</a></p> <h2><a name="func-members"></a> Functions</h2> <ul> <li>globus_size_t <a class="el" href="group__globus__gass__transfer__referral.html#ga94a96c132f5e471b146a9645848081ce">globus_gass_transfer_referral_get_count</a> (globus_gass_transfer_referral_t *referral) <li>char * <a class="el" href="group__globus__gass__transfer__referral.html#ga3bff48d2b5c72ed1c4b7a02aec2089c7">globus_gass_transfer_referral_get_url</a> (globus_gass_transfer_referral_t *referral, globus_size_t index) <li>int <a class="el" href="group__globus__gass__transfer__referral.html#gae83589cda7d1515d778db2c3a8f8969e">globus_gass_transfer_referral_destroy</a> (globus_gass_transfer_referral_t *referral) </ul> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <p>The GASS Transfer API supports referring URL requests to alternate URLs via referrals. </p> <p>Referrals are essentially pointers to another URL or URLs which contain the same file as the original location which a client has requested of a server. Referrals may span multiple protocol schemes, though not all protocols may be able to generate referrals. For example, an HTTP server may refer a client to another HTTP server, an HTTPS server.</p> <p>Upon receiving a referred response from a server, a client should query the request handle to determine from where the file can be retrieved. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga94a96c132f5e471b146a9645848081ce"></a><!-- doxytag: member="globus_gass_transfer_referral.c::globus_gass_transfer_referral_get_count" ref="ga94a96c132f5e471b146a9645848081ce" args="(globus_gass_transfer_referral_t *referral)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">globus_size_t globus_gass_transfer_referral_get_count </td> <td>(</td> <td class="paramtype">globus_gass_transfer_referral_t * </td> <td class="paramname"><em>referral</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the number of URLs in this referral. </p> <p>This function examines the referral to determine if the number of URLs which are contained in it. Each of these URLs should either point to another referral, or to a URL containing the equivalent file as the original URL request which caused this referral.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">referral</td><td>The referral structure to query.</td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>This function returns the number of URL entries in the referral, or 0, if there are none. </dd></dl> </div> </div> <a class="anchor" id="ga3bff48d2b5c72ed1c4b7a02aec2089c7"></a><!-- doxytag: member="globus_gass_transfer_referral.c::globus_gass_transfer_referral_get_url" ref="ga3bff48d2b5c72ed1c4b7a02aec2089c7" args="(globus_gass_transfer_referral_t *referral, globus_size_t index)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* globus_gass_transfer_referral_get_url </td> <td>(</td> <td class="paramtype">globus_gass_transfer_referral_t * </td> <td class="paramname"><em>referral</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">globus_size_t </td> <td class="paramname"><em>index</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Get a URL string from a referral. </p> <p>This function examines the referral to retrieve a URL string from it. A valid referal will contain one or more strings. They are indexed from 0 to the value returned by <a class="el" href="group__globus__gass__transfer__referral.html#ga94a96c132f5e471b146a9645848081ce" title="Get the number of URLs in this referral.">globus_gass_transfer_referral_get_count()</a> - 1.</p> <p>The string returned by this function must not be freed by the caller. It will remain valid until the referral structure is destroyed.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">referral</td><td>The referral structure to query.</td></tr> <tr><td class="paramname">index</td><td>The URL to extract from the referral. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>This function returns a string pointer containing the URL, or NULL if the index or referral were invalid. </dd></dl> </div> </div> <a class="anchor" id="gae83589cda7d1515d778db2c3a8f8969e"></a><!-- doxytag: member="globus_gass_transfer_referral.c::globus_gass_transfer_referral_destroy" ref="gae83589cda7d1515d778db2c3a8f8969e" args="(globus_gass_transfer_referral_t *referral)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int globus_gass_transfer_referral_destroy </td> <td>(</td> <td class="paramtype">globus_gass_transfer_referral_t * </td> <td class="paramname"><em>referral</em></td><td>)</td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free all memory used by a referral. </p> <p>This function frees all memory used by this referral. After calling this function, the strings returned by calling <a class="el" href="group__globus__gass__transfer__referral.html#ga3bff48d2b5c72ed1c4b7a02aec2089c7" title="Get a URL string from a referral.">globus_gass_transfer_referral_get_url()</a> must not be accessed. Any further attempts to extract informatoin from this referral will fail.</p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramname">referral</td><td>The referral to destroy.</td></tr> </table> </dd> </dl> <dl><dt><b>Return values:</b></dt><dd> <table class="retval"> <tr><td class="paramname">GLOBUS_SUCCESS</td><td>The referral was successfully destroyed. </td></tr> <tr><td class="paramname">GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER</td><td>The referral parameter was GLOBUS_NULL. It could not be destroyed. </td></tr> </table> </dd> </dl> </div> </div> </div> </div> <div id="nav-path" class="navpath"> <ul> <hr> <p align="center"> <a href="http://www.globus.org/toolkit/about.html" target="_top">about globus</a> | <a href="http://www.globus.org/toolkit/" target="_top">globus toolkit</a> | <a href="https://dev.globus.org/wiki/Welcome/" target="_top">dev.globus</a> <br> <br> Comments? <a href="mailto:webmaster@globus.org">webmaster@globus.org</a> </body> </html>