.TH "globus_ftp_client_throughput_plugin" 3 "Wed Feb 27 2019" "Version 9.2" "globus_ftp_client" \" -*- nroff -*- .ad l .nh .SH NAME globus_ftp_client_throughput_plugin \- Throughput Performance Plugin\&. .SH SYNOPSIS .br .PP .SS "Macros" .in +1c .ti -1c .RI "#define \fBGLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE\fP (&globus_i_ftp_client_throughput_plugin_module)" .br .in -1c .SS "Typedefs" .in +1c .ti -1c .RI "typedef void(* \fBglobus_ftp_client_throughput_plugin_begin_cb_t\fP) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, const char *source_url, const char *dest_url)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_client_throughput_plugin_stripe_cb_t\fP) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, int stripe_ndx, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_client_throughput_plugin_total_cb_t\fP) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_client_throughput_plugin_complete_cb_t\fP) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, globus_bool_t success)" .br .ti -1c .RI "typedef void *(* \fBglobus_ftp_client_throughput_plugin_user_copy_cb_t\fP) (void *user_specific)" .br .ti -1c .RI "typedef void(* \fBglobus_ftp_client_throughput_plugin_user_destroy_cb_t\fP) (void *user_specific)" .br .in -1c .SS "Functions" .in +1c .ti -1c .RI "globus_result_t \fBglobus_ftp_client_throughput_plugin_init\fP (\fBglobus_ftp_client_plugin_t\fP *plugin, \fBglobus_ftp_client_throughput_plugin_begin_cb_t\fP begin_cb, \fBglobus_ftp_client_throughput_plugin_stripe_cb_t\fP per_stripe_cb, \fBglobus_ftp_client_throughput_plugin_total_cb_t\fP total_cb, \fBglobus_ftp_client_throughput_plugin_complete_cb_t\fP complete_cb, void *user_specific)" .br .ti -1c .RI "globus_result_t \fBglobus_ftp_client_throughput_plugin_set_copy_destroy\fP (\fBglobus_ftp_client_plugin_t\fP *plugin, \fBglobus_ftp_client_throughput_plugin_user_copy_cb_t\fP copy_cb, \fBglobus_ftp_client_throughput_plugin_user_destroy_cb_t\fP destroy_cb)" .br .ti -1c .RI "globus_result_t \fBglobus_ftp_client_throughput_plugin_destroy\fP (\fBglobus_ftp_client_plugin_t\fP *plugin)" .br .ti -1c .RI "globus_result_t \fBglobus_ftp_client_throughput_plugin_get_user_specific\fP (\fBglobus_ftp_client_plugin_t\fP *plugin, void **user_specific)" .br .in -1c .SH "Detailed Description" .PP Throughput Performance Plugin\&. 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\&. .PP Note: Since this plugin is built on top of the Performance Marker Plugin, it is not possible to associate both plugins with a handle .SH "Macro Definition Documentation" .PP .SS "#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE (&globus_i_ftp_client_throughput_plugin_module)" Module descriptor .SH "Typedef Documentation" .PP .SS "typedef void(* globus_ftp_client_throughput_plugin_begin_cb_t) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, const char *source_url, const char *dest_url)" Transfer begin callback .PP This callback will be called when a transfer begins .PP \fBParameters:\fP .RS 4 \fIhandle\fP The client handle associated with this transfer .br \fIuser_specific\fP User argument passed to globus_ftp_client_throughput_plugin_init .br \fIsource_url\fP source of the transfer (GLOBUS_NULL if 'put') .br \fIdest_url\fP dest of the transfer (GLOBUS_NULL if 'get') .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 n/a .PP .RE .PP .SS "typedef void(* globus_ftp_client_throughput_plugin_complete_cb_t) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, globus_bool_t success)" Transfer complete callback .PP This callback will be called upon transfer completion (successful or otherwise) .PP \fBParameters:\fP .RS 4 \fIhandle\fP The client handle associated with this transfer .br \fIuser_specific\fP User argument passed to globus_ftp_client_throughput_plugin_init .br \fIsuccess\fP indicates whether this transfer completed successfully or was interrupted (by error or abort) .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 n/a .PP .RE .PP .SS "typedef void(* globus_ftp_client_throughput_plugin_stripe_cb_t) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, int stripe_ndx, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)" Stripe performace throughput callback .PP This callback will be called with every performance callback that is received by the perf plugin\&. The first callback for each stripe_ndx will have an instantaneous_throughput based from the time the command was sent\&. .PP \fBParameters:\fP .RS 4 \fIhandle\fP The client handle associated with this transfer .br \fIuser_specific\fP User argument passed to globus_ftp_client_throughput_plugin_init .br \fIbytes\fP The total number of bytes received on this stripe .br \fIinstantaneous_throughput\fP Instanteous throughput on this stripe (bytes / sec) .br \fIavg_throughput\fP Average throughput on this stripe (bytes / sec) .br \fIstripe_ndx\fP This stripe's index .RE .PP .SS "typedef void(* globus_ftp_client_throughput_plugin_total_cb_t) (void *user_specific, \fBglobus_ftp_client_handle_t\fP *handle, globus_off_t bytes, float instantaneous_throughput, float avg_throughput)" Total performace throughput callback .PP This callback will be called with every performance callback that is received by the perf plugin\&. 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 .PP \fBParameters:\fP .RS 4 \fIhandle\fP The client handle associated with this transfer .br \fIuser_specific\fP User argument passed to globus_ftp_client_throughput_plugin_init .br \fIbytes\fP The total number of bytes received on all stripes .br \fIinstantaneous_throughput\fP Total instanteous throughput on all stripes (bytes / sec) .br \fIavg_throughput\fP Average total throughput on all stripes (bytes / sec) .RE .PP .SS "typedef void*(* globus_ftp_client_throughput_plugin_user_copy_cb_t) (void *user_specific)" Copy constructor .PP This callback will be called when a copy of this plugin is made, it is intended to allow initialization of a new user_specific data .PP \fBParameters:\fP .RS 4 \fIuser_specific\fP this is user specific data either created by this copy method, or the value passed to init .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 a pointer to a user specific piece of data .IP "\(bu" 2 GLOBUS_NULL (does not indicate error) .PP .RE .PP .SS "typedef void(* globus_ftp_client_throughput_plugin_user_destroy_cb_t) (void *user_specific)" Destructor .PP This 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 .PP \fBParameters:\fP .RS 4 \fIuser_specific\fP this is user specific data created by the copy method .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 n/a .PP .RE .PP .SH "Function Documentation" .PP .SS "globus_result_t globus_ftp_client_throughput_plugin_destroy (\fBglobus_ftp_client_plugin_t\fP * plugin)" Destroy throughput plugin .PP Frees up memory associated with plugin .PP \fBParameters:\fP .RS 4 \fIplugin\fP plugin previously initialized with init (above) .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 GLOBUS_SUCCESS .IP "\(bu" 2 Error on NULL plugin .PP .RE .PP .SS "globus_result_t globus_ftp_client_throughput_plugin_get_user_specific (\fBglobus_ftp_client_plugin_t\fP * plugin, void ** user_specific)" Retrieve user specific pointer .PP \fBParameters:\fP .RS 4 \fIplugin\fP plugin previously initialized with init (above) .br \fIuser_specific\fP pointer to storage for user_specific pointer .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 GLOBUS_SUCCESS .IP "\(bu" 2 Error on NULL plugin .IP "\(bu" 2 Error on NULL user_specific .PP .RE .PP .SS "globus_result_t globus_ftp_client_throughput_plugin_init (\fBglobus_ftp_client_plugin_t\fP * plugin, \fBglobus_ftp_client_throughput_plugin_begin_cb_t\fP begin_cb, \fBglobus_ftp_client_throughput_plugin_stripe_cb_t\fP per_stripe_cb, \fBglobus_ftp_client_throughput_plugin_total_cb_t\fP total_cb, \fBglobus_ftp_client_throughput_plugin_complete_cb_t\fP complete_cb, void * user_specific)" Throughput plugin init .PP Use this function to initialize a throughput plugin\&. The throughput plugin sits on top of the perf_plugin\&. The only required param is 'plugin', all others may be GLOBUS_NULL .PP \fBParameters:\fP .RS 4 \fIplugin\fP a pointer to a plugin type to be initialized .br \fIbegin_cb\fP the callback to be called upon the start of a transfer .br \fIper_stripe_cb\fP the callback to be called every time updated throughput info is available for a given stripe .br \fItotal_cb\fP the callback to be called every time updated throughput info is available for any stripe .br \fIcomplete_cb\fP the callback to be called to indicate transfer completion .br \fIuser_specific\fP a pointer to some user specific data that will be provided to all callbacks .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 GLOBUS_SUCCESS .IP "\(bu" 2 Error on NULL plugin .IP "\(bu" 2 Error on init perf plugin .PP .RE .PP .SS "globus_result_t globus_ftp_client_throughput_plugin_set_copy_destroy (\fBglobus_ftp_client_plugin_t\fP * plugin, \fBglobus_ftp_client_throughput_plugin_user_copy_cb_t\fP copy_cb, \fBglobus_ftp_client_throughput_plugin_user_destroy_cb_t\fP destroy_cb)" Set user copy and destroy callbacks .PP Use this to have the plugin make callbacks any time a copy of this plugin is being made\&. This will allow the user to keep state for different handles\&. .PP \fBParameters:\fP .RS 4 \fIplugin\fP plugin previously initialized with init (above) .br \fIcopy_cb\fP func to be called when a copy is needed .br \fIdestroy_cb\fP func to be called when a copy is to be destroyed .RE .PP \fBReturns:\fP .RS 4 .IP "\(bu" 2 Error on NULL arguments .IP "\(bu" 2 GLOBUS_SUCCESS .PP .RE .PP .SH "Author" .PP Generated automatically by Doxygen for globus_ftp_client from the source code\&.