|
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) |
|
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
◆ GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE
#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE (&globus_i_ftp_client_throughput_plugin_module) |
◆ globus_ftp_client_throughput_plugin_begin_cb_t
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
-
◆ globus_ftp_client_throughput_plugin_complete_cb_t
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
-
◆ globus_ftp_client_throughput_plugin_stripe_cb_t
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 |
◆ globus_ftp_client_throughput_plugin_total_cb_t
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) |
◆ globus_ftp_client_throughput_plugin_user_copy_cb_t
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)
◆ globus_ftp_client_throughput_plugin_user_destroy_cb_t
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
-
◆ globus_ftp_client_throughput_plugin_destroy()
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_ftp_client_throughput_plugin_get_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_ftp_client_throughput_plugin_init()
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_ftp_client_throughput_plugin_set_copy_destroy()
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