Grid Community Toolkit  6.2.1653033972 (tag: v6.2.20220524)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Typedefs | Functions
Performance Marker Plugin

Performance Marker Plugin. More...

Macros

#define GLOBUS_FTP_CLIENT_PERF_PLUGIN_MODULE   (&globus_i_ftp_client_perf_plugin_module)
 

Typedefs

typedef void(* globus_ftp_client_perf_plugin_begin_cb_t )(void *user_specific, globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, globus_bool_t restart)
 
typedef void(* globus_ftp_client_perf_plugin_marker_cb_t )(void *user_specific, globus_ftp_client_handle_t *handle, long time_stamp_int, char time_stamp_tenth, int stripe_ndx, int num_stripes, globus_off_t nbytes)
 
typedef void(* globus_ftp_client_perf_plugin_complete_cb_t )(void *user_specific, globus_ftp_client_handle_t *handle, globus_bool_t success)
 
typedef void *(* globus_ftp_client_perf_plugin_user_copy_cb_t )(void *user_specific)
 
typedef void(* globus_ftp_client_perf_plugin_user_destroy_cb_t )(void *user_specific)
 

Functions

globus_result_t globus_ftp_client_perf_plugin_init (globus_ftp_client_plugin_t *plugin, globus_ftp_client_perf_plugin_begin_cb_t begin_cb, globus_ftp_client_perf_plugin_marker_cb_t marker_cb, globus_ftp_client_perf_plugin_complete_cb_t complete_cb, void *user_specific)
 
globus_result_t globus_ftp_client_perf_plugin_set_copy_destroy (globus_ftp_client_plugin_t *plugin, globus_ftp_client_perf_plugin_user_copy_cb_t copy_cb, globus_ftp_client_perf_plugin_user_destroy_cb_t destroy_cb)
 
globus_result_t globus_ftp_client_perf_plugin_destroy (globus_ftp_client_plugin_t *plugin)
 
globus_result_t globus_ftp_client_perf_plugin_get_user_specific (globus_ftp_client_plugin_t *plugin, void **user_specific)
 

Detailed Description

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.

Macro Definition Documentation

#define GLOBUS_FTP_CLIENT_PERF_PLUGIN_MODULE   (&globus_i_ftp_client_perf_plugin_module)

Module descriptor

Typedef Documentation

typedef void(* globus_ftp_client_perf_plugin_begin_cb_t)(void *user_specific, globus_ftp_client_handle_t *handle, const char *source_url, const char *dest_url, globus_bool_t restart)

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
handlethis the client handle that this transfer will be occurring on
user_specificthis is user specific data either created by the copy method, or, if a copy method was not specified, the value passed to init
source_urlsource of the transfer (GLOBUS_NULL if 'put')
dest_urldest of the transfer (GLOBUS_NULL if 'get')
restartboolean indicating whether this callback is result of a restart
Returns
  • n/a
typedef void(* globus_ftp_client_perf_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
handlethis the client handle that this transfer was occurring on
user_specificthis is user specific data either created by the copy method, or, if a copy method was not specified, the value passed to init
successindicates whether this transfer completed successfully or was interrupted (by error or abort)
Returns
  • n/a
typedef void(* globus_ftp_client_perf_plugin_marker_cb_t)(void *user_specific, globus_ftp_client_handle_t *handle, long time_stamp_int, char time_stamp_tenth, int stripe_ndx, int num_stripes, globus_off_t nbytes)

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 won't 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
handlethis the client handle that this transfer is occurring on
user_specificthis 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_intthe timestamp at which the number of bytes is valid (integer part)
time_stamp_tenththe timestamp at which the number of bytes is valid (tenth part)
stripe_ndxthe stripe index this data refers to
num_stripestotal number of stripes involved in this transfer
nbytesthe total bytes transferred on this stripe
Returns
  • n/a
typedef void*(* globus_ftp_client_perf_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_specificthis 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_perf_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_specificthis is user specific data created by the copy method
Returns
  • n/a

Function Documentation

globus_result_t globus_ftp_client_perf_plugin_destroy ( globus_ftp_client_plugin_t plugin)

Destroy performance marker plugin

Frees up memory associated with plugin

Parameters
pluginplugin previously initialized with init (above)
Returns
  • GLOBUS_SUCCESS
  • Error on NULL plugin
globus_result_t globus_ftp_client_perf_plugin_get_user_specific ( globus_ftp_client_plugin_t plugin,
void **  user_specific 
)

Retrieve user specific pointer

Parameters
pluginplugin previously initialized with init (above)
user_specificpointer to storage for user_specific pointer
Returns
  • GLOBUS_SUCCESS
  • Error on NULL plugin
  • Error on NULL user_specific
globus_result_t globus_ftp_client_perf_plugin_init ( globus_ftp_client_plugin_t plugin,
globus_ftp_client_perf_plugin_begin_cb_t  begin_cb,
globus_ftp_client_perf_plugin_marker_cb_t  marker_cb,
globus_ftp_client_perf_plugin_complete_cb_t  complete_cb,
void *  user_specific 
)

Initialize a perf plugin

This function initializes a performance marker plugin. Any params except for the plugin may be GLOBUS_NULL

Parameters
plugina pointer to a plugin type to be initialized
user_specifica pointer to some user specific data that will be provided to all callbacks
begin_cbthe callback to be called upon the start of a transfer
marker_cbthe callback to be called with every performance marker received
complete_cbthe callback to be called to indicate transfer completion
Returns
  • GLOBUS_SUCCESS
  • Error on NULL plugin
  • Error on init internal plugin
globus_result_t globus_ftp_client_perf_plugin_set_copy_destroy ( globus_ftp_client_plugin_t plugin,
globus_ftp_client_perf_plugin_user_copy_cb_t  copy_cb,
globus_ftp_client_perf_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
pluginplugin previously initialized with init (above)
copy_cbfunc to be called when a copy is needed
destroy_cbfunc to be called when a copy is to be destroyed
Returns
  • Error on NULL arguments
  • GLOBUS_SUCCESS