GLOBUS_FTP_CLIENT_PERF_PLUGIN_USER_COPY_CB_T(3)
π globus_ftp_client_perf_plugin π
okay bestie, welcome to the Library Functions Manual for globus_ftp_client_perf_plugin β this is the Performance Marker Plugin and she is lowkey a whole vibe. Let's get into it. β¨
β¨ NAME β¨
globus_ftp_client_perf_plugin β Performance Marker Plugin.
Performance Marker Plugin. π
β¨ SYNOPSIS β¨
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, time_t
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. π«Ά
So here's the tea: the FTP Performance Marker plugin lets you (the user, the main character) obtain performance markers for all types of transfers β except a third party transfer where Extended Block mode is not enabled. She's picky like that, and honestly? Valid. π
These markers can be generated internally, or they can be received from a server (put or third_party_transfer only, iykyk). β¨
There are also copy constructor and destructor callbacks provided, so you can more easily layer other plugins on top of this one. Stacking plugins? It's giving lewk. π
β¨ 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 fires when a get, put, or third party transfer gets started. Heads up though β it is possible for this callback to be made multiple times before you ever receive the complete callbackβ¦ which is exactly what happens if a transfer got restarted. The restart value will tell you whether or not we have been restarted. No cap. π₯
Parameters
handleβ this the client handle that this transfer will be occurring onuser_specificβ this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed toinitsource_urlβ source of the transfer (GLOBUS_NULLifput)dest_urlβ dest of the transfer (GLOBUS_NULLifget)restartβ boolean 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, bestie. Either way we're showing up. π
Parameters
handleβ this the client handle that this transfer was occurring onuser_specificβ this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed toinitsuccessβ indicates 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, time_t time_stamp_int, char time_stamp_tenth, int stripe_ndx, int num_stripes, globus_off_t nbytes)
Performance marker received callback π
This callback gets called for all types of transfers β except a third party one in which extended block mode is not used (because 112 perf markers won't be sent in that case, and she simply cannot work with that π). 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 where extended block mode is not enabled, and for 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 onuser_specificβ this is user specific data either created by the copy method, or, if a copy method was not specified, the value passed toinittime_stamp_intβ the timestamp at which the number of bytes is valid (integer part)time_stamp_tenthβ the timestamp at which the number of bytes is valid (tenth part)stripe_ndxβ the stripe index this data refers tonum_stripesβ total number of stripes involved in this transfernbytesβ the 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's intended to allow initialization of a new user_specific data. Fresh start, new you. β¨
Parameters
user_specificβ this is user specific data either created by this copy method, or the value passed toinit
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's intended to allow the user to free up any memory associated with the user specific data. Cleanup era. π§Ή
Parameters
user_specificβ this 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. Let her go, bestie.
Parameters
pluginβ plugin previously initialized withinit(above)
Returns
GLOBUS_SUCCESS- Error on
NULLplugin
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
pluginβ plugin previously initialized withinit(above)user_specificβ pointer to storage foruser_specificpointer
Returns
GLOBUS_SUCCESS- Error on
NULLplugin - Error on
NULLuser_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. Yes queen, be flexible.
Parameters
pluginβ a pointer to a plugin type to be initializeduser_specificβ a pointer to some user specific data that will be provided to all callbacksbegin_cbβ the callback to be called upon the start of a transfermarker_cbβ the callback to be called with every performance marker receivedcomplete_cbβ the callback to be called to indicate transfer completion
Returns
GLOBUS_SUCCESS- Error on
NULLplugin - Error on
initinternal 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. Multi-handle multitasking? We love to see it. π
Parameters
pluginβ plugin previously initialized withinit(above)copy_cbβ func to be called when a copy is neededdestroy_cbβ func to be called when a copy is to be destroyed
Returns
- Error on
NULLarguments GLOBUS_SUCCESS
β¨ Author β¨
Generated automatically by Doxygen for globus_ftp_client from the source code. π€β¨
and that's the whole page, bestie!! πΈπ¦π This was globus_ftp_client, Version 9.9, and the page was globus_ftp...perf_plugin(3) β no notes, she ate, periodt. π
β¨π
π¦ where this page comes from
- epel 10: globus-ftp-client-doc 9.9-1.el10_2 Β· Apache-2.0
- fedora 43: globus-ftp-client-doc 9.9-1.fc43 Β· Apache-2.0
- fedora 44: globus-ftp-client-doc 9.9-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-ftp-client-doc 9.9-1 Β· Apache-2.0
- ubuntu stonking: libglobus-ftp-client-doc 9.9-2build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms