globus_ftp_client_throughput_plugin_user_copy_cb_t(3)
Throughput Performance Plugin
Description
globus_ftp_client_throughput_plugin
NAME
globus_ftp_client_throughput_plugin - Throughput Performance Plugin
- Throughput Performance Plugin.
SYNOPSIS
Macros
#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE (&globus_i_ftp_client_throughput_plugin_module)
Typedefs
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)
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)
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)
typedef void(*
globus_ftp_client_throughput_plugin_complete_cb_t)
(void *user_specific, globus_ftp_client_handle_t
*handle, globus_bool_t success)
typedef void *(*
globus_ftp_client_throughput_plugin_user_copy_cb_t)
(void *user_specific)
typedef void(*
globus_ftp_client_throughput_plugin_user_destroy_cb_t)
(void *user_specific)
Functions
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)
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)
globus_result_t
globus_ftp_client_throughput_plugin_destroy
(globus_ftp_client_plugin_t *plugin)
globus_result_t
globus_ftp_client_throughput_plugin_get_user_specific
(globus_ftp_client_plugin_t *plugin, void
**user_specific)
Detailed Description
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.
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, 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_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_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 performance 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 performance 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(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 |
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 |
Author
Generated automatically by Doxygen for globus_ftp_client from the source code.