Detailed Description

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.

Note: Since this plugin is built on top of the Performance Marker Plugin, it is not possible to associate both plugins with a handle

Macro Definition Documentation

#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE (&globus_i_ftp_client_throughput_plugin_module)

Module descriptor

Typedef Documentation

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

This callback will be called when a transfer begins

Parameters:

handle The client handle associated with this transfer

user_specific User argument passed to globus_ftp_client_throughput_plugin_init

source_url source of the transfer (GLOBUS_NULL if 'put')

dest_url dest of the transfer (GLOBUS_NULL if 'get')

Returns:

  • n/a

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

This callback will be called upon transfer completion (successful or otherwise)

Parameters:

handle The client handle associated with this transfer

user_specific User argument passed to globus_ftp_client_throughput_plugin_init

success indicates whether this transfer completed successfully or was interrupted (by error or abort)

Returns:

  • n/a

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

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.

Parameters:

handle The client handle associated with this transfer

user_specific User argument passed to globus_ftp_client_throughput_plugin_init

bytes The total number of bytes received on this stripe

instantaneous_throughput Instanteous throughput on this stripe (bytes / sec)

avg_throughput Average throughput on this stripe (bytes / sec)

stripe_ndx This stripe's index

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

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

Parameters:

handle The client handle associated with this transfer

user_specific User argument passed to globus_ftp_client_throughput_plugin_init

bytes The total number of bytes received on all stripes

instantaneous_throughput Total instanteous throughput on all stripes (bytes / sec)

avg_throughput Average total throughput on all stripes (bytes / sec)

typedef void*(* globus_ftp_client_throughput_plugin_user_copy_cb_t)(void *user_specific)

Copy constructor

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

Parameters:

user_specific this is user specific data either created by this copy method, or the value passed to init

Returns:

  • a pointer to a user specific piece of data

  • GLOBUS_NULL (does not indicate error)

typedef void(* globus_ftp_client_throughput_plugin_user_destroy_cb_t)(void *user_specific)

Destructor

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

Parameters:

user_specific this is user specific data created by the copy method

Returns:

  • n/a

Function Documentation

globus_result_t globus_ftp_client_throughput_plugin_destroy (\fBglobus_ftp_client_plugin_t\fP *plugin)

Destroy throughput plugin

Frees up memory associated with plugin

Parameters:

plugin plugin previously initialized with init (above)

Returns:

  • GLOBUS_SUCCESS

  • Error on NULL plugin

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

Parameters:

plugin plugin previously initialized with init (above)

user_specific pointer to storage for user_specific pointer

Returns:

  • GLOBUS_SUCCESS

  • Error on NULL plugin

  • Error on NULL user_specific

globus_result_t globus_ftp_client_throughput_plugin_init (\fBglobus_ftp_client_plugin_t\fP *plugin, \fBglobus_ftp_client_throughput_plugin_begin_cb_t\fPbegin_cb, \fBglobus_ftp_client_throughput_plugin_stripe_cb_t\fPper_stripe_cb, \fBglobus_ftp_client_throughput_plugin_total_cb_t\fPtotal_cb, \fBglobus_ftp_client_throughput_plugin_complete_cb_t\fPcomplete_cb, void *user_specific)

Throughput plugin init

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

Parameters:

plugin a pointer to a plugin type to be initialized

begin_cb the callback to be called upon the start of a transfer

per_stripe_cb the callback to be called every time updated throughput info is available for a given stripe

total_cb the callback to be called every time updated throughput info is available for any stripe

complete_cb the callback to be called to indicate transfer completion

user_specific a pointer to some user specific data that will be provided to all callbacks

Returns:

  • GLOBUS_SUCCESS

  • Error on NULL plugin

  • Error on init perf plugin

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\fPcopy_cb, \fBglobus_ftp_client_throughput_plugin_user_destroy_cb_t\fPdestroy_cb)

Set user copy and destroy callbacks

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.

Parameters:

plugin plugin previously initialized with init (above)

copy_cb func to be called when a copy is needed

destroy_cb func to be called when a copy is to be destroyed

Returns:

  • Error on NULL arguments

  • GLOBUS_SUCCESS

Author

Generated automatically by Doxygen for globus_ftp_client from the source code.