Performance marker plugin -
The FTP Performance Marker plugin allows the user to obtain performance markers for all types of transfers except a third party transfer in which Extended Block mode is not enabled.
These markers may be generated internally, or they may be received from a server ('put' or third_party_transfer' only).
Copy constructor and destructor callbacks are also provided to allow one to more easily layer other plugins on top of this one.
Module descriptor
Transfer begin callback
This callback is called when a get, put, or third party transfer is started. Note that it is possible for this callback to be made multiple times before ever receiving the complete callback... this would be the case if a transfer was restarted. The 'restart' will indicate whether or not we have been restarted.
Parameters:
handle this the client handle that this transfer will be occurring on
user_specific this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed to init
source_url source of the transfer (GLOBUS_NULL if 'put')
dest_url dest of the transfer (GLOBUS_NULL if 'get')
restart boolean indicating whether this callback is result of a restart
Returns:
n/a
Transfer complete callback
This callback will be called upon transfer completion (successful or otherwise)
Parameters:
handle this the client handle that this transfer was occurring on
user_specific this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed to init
success indicates whether this transfer completed successfully or was interrupted (by error or abort)
Returns:
n/a
Performance marker received callback
This callback is called for all types of transfers except a third party in which extended block mode is not used (because 112 perf markers wont be sent in that case). For extended mode 'put' and '3pt', actual 112 perf markers will be used and the frequency of this callback is dependent upon the frequency those messages are received. For 'put' in which extended block mode is not enabled and 'get' transfers, the information in this callback will be determined locally and the frequency of this callback will be at a maximum of one per second.
Parameters:
handle this the client handle that this transfer is occurring on
user_specific this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed to init
time_stamp the timestamp at which the number of bytes is valid
stripe_ndx the stripe index this data refers to
num_stripes total number of stripes involved in this transfer
nbytes the total bytes transferred on this stripe
Returns:
n/a
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)
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
Destroy performance marker plugin
Frees up memory associated with plugin
Parameters:
plugin plugin previously initialized with init (above)
Returns:
GLOBUS_SUCCESS
Error on NULL plugin
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
Initialize a perf plugin
This function initializes a performance marker plugin. Any params except for the plugin may be GLOBUS_NULL
Parameters:
plugin a pointer to a plugin type to be initialized
user_specific a pointer to some user specific data that will be provided to all callbacks
begin_cb the callback to be called upon the start of a transfer
marker_cb the callback to be called with every performance marker received
complete_cb the callback to be called to indicate transfer completion
Returns:
GLOBUS_SUCCESS
Error on NULL plugin
Error on init internal plugin
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
Generated automatically by Doxygen for globus_ftp_client from the source code.