Throughput Performance Plugin
[Plugins]

Collaboration diagram for 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. More...

Defines

Typedefs

Functions


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


Define 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, globus_ftp_client_handle_t *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_stripe_cb_t)(void *user_specific, globus_ftp_client_handle_t *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, globus_ftp_client_handle_t *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_complete_cb_t)(void *user_specific, globus_ftp_client_handle_t *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_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_init ( globus_ftp_client_plugin_t plugin,
globus_ftp_client_throughput_plugin_begin_cb_t  begin_cb,
globus_ftp_client_throughput_plugin_stripe_cb_t  per_stripe_cb,
globus_ftp_client_throughput_plugin_total_cb_t  total_cb,
globus_ftp_client_throughput_plugin_complete_cb_t  complete_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 ( globus_ftp_client_plugin_t plugin,
globus_ftp_client_throughput_plugin_user_copy_cb_t  copy_cb,
globus_ftp_client_throughput_plugin_user_destroy_cb_t  destroy_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

globus_result_t globus_ftp_client_throughput_plugin_destroy ( globus_ftp_client_plugin_t 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 ( globus_ftp_client_plugin_t 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


about globus | globus toolkit | dev.globus

Comments? webmaster@globus.org