00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_FTP_CLIENT_PERF_PLUGIN_H
00018 #define GLOBUS_FTP_CLIENT_PERF_PLUGIN_H
00019
00041 #include "globus_ftp_client.h"
00042 #include "globus_ftp_client_plugin.h"
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047
00051 #define GLOBUS_FTP_CLIENT_PERF_PLUGIN_MODULE (&globus_i_ftp_client_perf_plugin_module)
00052
00053 extern
00054 globus_module_descriptor_t globus_i_ftp_client_perf_plugin_module;
00055
00087 typedef void (*globus_ftp_client_perf_plugin_begin_cb_t)(
00088 void * user_specific,
00089 globus_ftp_client_handle_t * handle,
00090 const char * source_url,
00091 const char * dest_url,
00092 globus_bool_t restart);
00093
00130 typedef void (*globus_ftp_client_perf_plugin_marker_cb_t)(
00131 void * user_specific,
00132 globus_ftp_client_handle_t * handle,
00133 long time_stamp_int,
00134 char time_stamp_tength,
00135 int stripe_ndx,
00136 int num_stripes,
00137 globus_off_t nbytes);
00138
00162 typedef void (*globus_ftp_client_perf_plugin_complete_cb_t)(
00163 void * user_specific,
00164 globus_ftp_client_handle_t * handle,
00165 globus_bool_t success);
00166
00183 typedef void * (*globus_ftp_client_perf_plugin_user_copy_cb_t)(
00184 void * user_specific);
00185
00201 typedef void (*globus_ftp_client_perf_plugin_user_destroy_cb_t)(
00202 void * user_specific);
00203
00204 globus_result_t
00205 globus_ftp_client_perf_plugin_init(
00206 globus_ftp_client_plugin_t * plugin,
00207 globus_ftp_client_perf_plugin_begin_cb_t begin_cb,
00208 globus_ftp_client_perf_plugin_marker_cb_t marker_cb,
00209 globus_ftp_client_perf_plugin_complete_cb_t complete_cb,
00210 void * user_specific);
00211
00212 globus_result_t
00213 globus_ftp_client_perf_plugin_set_copy_destroy(
00214 globus_ftp_client_plugin_t * plugin,
00215 globus_ftp_client_perf_plugin_user_copy_cb_t copy_cb,
00216 globus_ftp_client_perf_plugin_user_destroy_cb_t destroy_cb);
00217
00218 globus_result_t
00219 globus_ftp_client_perf_plugin_destroy(
00220 globus_ftp_client_plugin_t * plugin);
00221
00222 globus_result_t
00223 globus_ftp_client_perf_plugin_get_user_specific(
00224 globus_ftp_client_plugin_t * plugin,
00225 void ** user_specific);
00226
00227 #ifdef __cplusplus
00228 }
00229 #endif
00230
00231 #endif