Sophie

Sophie

distrib > Fedora > 17 > i386 > by-pkgid > a5792cbc6dcdf6bdde626c0724c2c85a > files > 76

globus-ftp-client-doc-7.4-1.fc17.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.1.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>
  </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__ftp__client__throughput__plugin.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Throughput Performance Plugin</div>  </div>
<div class="ingroups"><a class="el" href="group__globus__ftp__client__plugins.html">Plugins</a></div></div><!--header-->
<div class="contents">
<div class="dynheader">
Collaboration diagram for Throughput Performance Plugin:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__globus__ftp__client__throughput__plugin.png" border="0" alt="" usemap="#group____globus____ftp____client____throughput____plugin"/>
<map name="group____globus____ftp____client____throughput____plugin" id="group____globus____ftp____client____throughput____plugin">
<area shape="rect" id="node1" href="group__globus__ftp__client__plugins.html" title="Plugin API." alt="" coords="6,12,71,39"/></map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gabd79a3f5b7051bb6b4bee0d8d062d716"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gabd79a3f5b7051bb6b4bee0d8d062d716">GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE</a>&#160;&#160;&#160;(&amp;globus_i_ftp_client_throughput_plugin_module)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga635fcdcd8bc88682f974b6258665fa77"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga635fcdcd8bc88682f974b6258665fa77">globus_ftp_client_throughput_plugin_begin_cb_t</a> )(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, const char *source_url, const char *dest_url)</td></tr>
<tr class="memitem:gad3378988c81b09b07a56be73b81d7e39"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gad3378988c81b09b07a56be73b81d7e39">globus_ftp_client_throughput_plugin_stripe_cb_t</a> )(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, int stripe_ndx, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)</td></tr>
<tr class="memitem:ga94697ba39253977f5edc0f616baa3f07"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga94697ba39253977f5edc0f616baa3f07">globus_ftp_client_throughput_plugin_total_cb_t</a> )(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)</td></tr>
<tr class="memitem:ga41213a4cc3331fdd9ae607ecaeb35122"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga41213a4cc3331fdd9ae607ecaeb35122">globus_ftp_client_throughput_plugin_complete_cb_t</a> )(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_bool_t success)</td></tr>
<tr class="memitem:gaee0d6a6086190474c8c752eeb5f58448"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaee0d6a6086190474c8c752eeb5f58448">globus_ftp_client_throughput_plugin_user_copy_cb_t</a> )(void *user_specific)</td></tr>
<tr class="memitem:gaf580100a8038cf8e54e15f8b5d484a7b"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaf580100a8038cf8e54e15f8b5d484a7b">globus_ftp_client_throughput_plugin_user_destroy_cb_t</a> )(void *user_specific)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga4c141499bfd91a76758fa558e6328a7e"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga4c141499bfd91a76758fa558e6328a7e">globus_ftp_client_throughput_plugin_init</a> (<a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *plugin, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga635fcdcd8bc88682f974b6258665fa77">globus_ftp_client_throughput_plugin_begin_cb_t</a> begin_cb, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#gad3378988c81b09b07a56be73b81d7e39">globus_ftp_client_throughput_plugin_stripe_cb_t</a> per_stripe_cb, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga94697ba39253977f5edc0f616baa3f07">globus_ftp_client_throughput_plugin_total_cb_t</a> total_cb, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga41213a4cc3331fdd9ae607ecaeb35122">globus_ftp_client_throughput_plugin_complete_cb_t</a> complete_cb, void *user_specific)</td></tr>
<tr class="memitem:ga2bac7cad7c25297659548216b1d547d2"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga2bac7cad7c25297659548216b1d547d2">globus_ftp_client_throughput_plugin_set_copy_destroy</a> (<a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *plugin, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaee0d6a6086190474c8c752eeb5f58448">globus_ftp_client_throughput_plugin_user_copy_cb_t</a> copy_cb, <a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaf580100a8038cf8e54e15f8b5d484a7b">globus_ftp_client_throughput_plugin_user_destroy_cb_t</a> destroy_cb)</td></tr>
<tr class="memitem:gac1041b36437cb1401cf0e65c71246d84"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gac1041b36437cb1401cf0e65c71246d84">globus_ftp_client_throughput_plugin_destroy</a> (<a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *plugin)</td></tr>
<tr class="memitem:gaf384442919d57f1420a29ec72fe3fc09"><td class="memItemLeft" align="right" valign="top">globus_result_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaf384442919d57f1420a29ec72fe3fc09">globus_ftp_client_throughput_plugin_get_user_specific</a> (<a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *plugin, void **user_specific)</td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>The FTP Throughput Performance plugin allows the user to obtain calculated performance information for all types of transfers except a third party transfer in which Extended Block mode is not enabled. </p>
<p>Note: Since this plugin is built on top of the Performance Marker Plugin, it is not possible to associate both plugins with a handle </p>
<hr/><h2>Macro Definition Documentation</h2>
<a class="anchor" id="gabd79a3f5b7051bb6b4bee0d8d062d716"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE&#160;&#160;&#160;(&amp;globus_i_ftp_client_throughput_plugin_module)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Module descriptor. </p>

</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ga635fcdcd8bc88682f974b6258665fa77"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_throughput_plugin_begin_cb_t)(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, const char *source_url, const char *dest_url)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transfer begin callbackThis callback will be called when a transfer begins. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>The client handle associated with this transfer</td></tr>
    <tr><td class="paramname">user_specific</td><td>User argument passed to globus_ftp_client_throughput_plugin_init</td></tr>
    <tr><td class="paramname">source_url</td><td>source of the transfer (GLOBUS_NULL if 'put')</td></tr>
    <tr><td class="paramname">dest_url</td><td>dest of the transfer (GLOBUS_NULL if 'get')</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>n/a </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gad3378988c81b09b07a56be73b81d7e39"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_throughput_plugin_stripe_cb_t)(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, int stripe_ndx, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Stripe performace throughput callbackThis callback will be called with every performance callback that is received by the perf plugin. </p>
<p>The first callback for each stripe_ndx will have an instantaneous_throughput based from the time the command was sent.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>The client handle associated with this transfer</td></tr>
    <tr><td class="paramname">user_specific</td><td>User argument passed to globus_ftp_client_throughput_plugin_init</td></tr>
    <tr><td class="paramname">bytes</td><td>The total number of bytes received on this stripe</td></tr>
    <tr><td class="paramname">instantaneous_throughput</td><td>Instanteous throughput on this stripe (bytes / sec)</td></tr>
    <tr><td class="paramname">avg_throughput</td><td>Average throughput on this stripe (bytes / sec)</td></tr>
    <tr><td class="paramname">stripe_ndx</td><td>This stripe's index </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga94697ba39253977f5edc0f616baa3f07"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_throughput_plugin_total_cb_t)(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Total performace throughput callbackThis callback will be called with every performance callback that is received by the perf plugin. </p>
<p>The first callback for will have an instantaneous_throughput based from the time the command was sent. This callback will be called after the per_stripe_cb</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>The client handle associated with this transfer</td></tr>
    <tr><td class="paramname">user_specific</td><td>User argument passed to globus_ftp_client_throughput_plugin_init</td></tr>
    <tr><td class="paramname">bytes</td><td>The total number of bytes received on all stripes</td></tr>
    <tr><td class="paramname">instantaneous_throughput</td><td>Total instanteous throughput on all stripes (bytes / sec)</td></tr>
    <tr><td class="paramname">avg_throughput</td><td>Average total throughput on all stripes (bytes / sec) </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga41213a4cc3331fdd9ae607ecaeb35122"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_throughput_plugin_complete_cb_t)(void *user_specific, <a class="el" href="group__globus__ftp__client__handle.html#ga9d8a98c88d529ab539c2fedee545f172">globus_ftp_client_handle_t</a> *handle, globus_bool_t success)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Transfer complete callbackThis callback will be called upon transfer completion (successful or otherwise) </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>The client handle associated with this transfer</td></tr>
    <tr><td class="paramname">user_specific</td><td>User argument passed to globus_ftp_client_throughput_plugin_init</td></tr>
    <tr><td class="paramname">success</td><td>indicates whether this transfer completed successfully or was interrupted (by error or abort)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>n/a </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gaee0d6a6086190474c8c752eeb5f58448"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void*(* globus_ftp_client_throughput_plugin_user_copy_cb_t)(void *user_specific)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy constructorThis callback will be called when a copy of this plugin is made, it is intended to allow initialization of a new user_specific data. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_specific</td><td>this is user specific data either created by this copy method, or the value passed to init</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>a pointer to a user specific piece of data</li>
<li>GLOBUS_NULL (does not indicate error) </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gaf580100a8038cf8e54e15f8b5d484a7b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* globus_ftp_client_throughput_plugin_user_destroy_cb_t)(void *user_specific)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>DestructorThis callback will be called when a copy of this plugin is destroyed, it is intended to allow the user to free up any memory associated with the user specific data. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">user_specific</td><td>this is user specific data created by the copy method</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>n/a </li>
</ul>
</dd></dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="ga4c141499bfd91a76758fa558e6328a7e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_throughput_plugin_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga635fcdcd8bc88682f974b6258665fa77">globus_ftp_client_throughput_plugin_begin_cb_t</a>&#160;</td>
          <td class="paramname"><em>begin_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gad3378988c81b09b07a56be73b81d7e39">globus_ftp_client_throughput_plugin_stripe_cb_t</a>&#160;</td>
          <td class="paramname"><em>per_stripe_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga94697ba39253977f5edc0f616baa3f07">globus_ftp_client_throughput_plugin_total_cb_t</a>&#160;</td>
          <td class="paramname"><em>total_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#ga41213a4cc3331fdd9ae607ecaeb35122">globus_ftp_client_throughput_plugin_complete_cb_t</a>&#160;</td>
          <td class="paramname"><em>complete_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>user_specific</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Throughput plugin initUse this function to initialize a throughput plugin. </p>
<p>The throughput plugin sits on top of the perf_plugin. The only required param is 'plugin', all others may be GLOBUS_NULL</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">plugin</td><td>a pointer to a plugin type to be initialized</td></tr>
    <tr><td class="paramname">begin_cb</td><td>the callback to be called upon the start of a transfer</td></tr>
    <tr><td class="paramname">per_stripe_cb</td><td>the callback to be called every time updated throughput info is available for a given stripe</td></tr>
    <tr><td class="paramname">total_cb</td><td>the callback to be called every time updated throughput info is available for any stripe</td></tr>
    <tr><td class="paramname">complete_cb</td><td>the callback to be called to indicate transfer completion</td></tr>
    <tr><td class="paramname">user_specific</td><td>a pointer to some user specific data that will be provided to all callbacks</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>GLOBUS_SUCCESS</li>
<li>Error on NULL plugin</li>
<li>Error on init perf plugin </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="ga2bac7cad7c25297659548216b1d547d2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_throughput_plugin_set_copy_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaee0d6a6086190474c8c752eeb5f58448">globus_ftp_client_throughput_plugin_user_copy_cb_t</a>&#160;</td>
          <td class="paramname"><em>copy_cb</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__throughput__plugin.html#gaf580100a8038cf8e54e15f8b5d484a7b">globus_ftp_client_throughput_plugin_user_destroy_cb_t</a>&#160;</td>
          <td class="paramname"><em>destroy_cb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set user copy and destroy callbacksUse this to have the plugin make callbacks any time a copy of this plugin is being made. </p>
<p>This will allow the user to keep state for different handles.</p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">plugin</td><td>plugin previously initialized with init (above)</td></tr>
    <tr><td class="paramname">copy_cb</td><td>func to be called when a copy is needed</td></tr>
    <tr><td class="paramname">destroy_cb</td><td>func to be called when a copy is to be destroyed</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>Error on NULL arguments</li>
<li>GLOBUS_SUCCESS </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gac1041b36437cb1401cf0e65c71246d84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_throughput_plugin_destroy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *&#160;</td>
          <td class="paramname"><em>plugin</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroy throughput pluginFrees up memory associated with plugin. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">plugin</td><td>plugin previously initialized with init (above)</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>GLOBUS_SUCCESS</li>
<li>Error on NULL plugin </li>
</ul>
</dd></dl>

</div>
</div>
<a class="anchor" id="gaf384442919d57f1420a29ec72fe3fc09"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">globus_result_t globus_ftp_client_throughput_plugin_get_user_specific </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__globus__ftp__client__plugins.html#gafd650bbeee4bf50b94275d89352697dc">globus_ftp_client_plugin_t</a> *&#160;</td>
          <td class="paramname"><em>plugin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void **&#160;</td>
          <td class="paramname"><em>user_specific</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve user specific pointer. </p>
<dl class="params"><dt>Parameters:</dt><dd>
  <table class="params">
    <tr><td class="paramname">plugin</td><td>plugin previously initialized with init (above)</td></tr>
    <tr><td class="paramname">user_specific</td><td>pointer to storage for user_specific pointer</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns:</dt><dd><ul>
<li>GLOBUS_SUCCESS</li>
<li>Error on NULL plugin</li>
<li>Error on NULL user_specific </li>
</ul>
</dd></dl>

</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>