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
00040 #include "globus_ftp_client.h"
00041 #include "globus_ftp_client_plugin.h"
00042
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046
00050 #define GLOBUS_FTP_CLIENT_PERF_PLUGIN_MODULE (&globus_i_ftp_client_perf_plugin_module)
00051
00052 extern
00053 globus_module_descriptor_t globus_i_ftp_client_perf_plugin_module;
00054
00086 typedef void (*globus_ftp_client_perf_plugin_begin_cb_t)(
00087 void * user_specific,
00088 globus_ftp_client_handle_t * handle,
00089 const char * source_url,
00090 const char * dest_url,
00091 globus_bool_t restart);
00092
00129 typedef void (*globus_ftp_client_perf_plugin_marker_cb_t)(
00130 void * user_specific,
00131 globus_ftp_client_handle_t * handle,
00132 long time_stamp_int,
00133 char time_stamp_tength,
00134 int stripe_ndx,
00135 int num_stripes,
00136 globus_off_t nbytes);
00137
00161 typedef void (*globus_ftp_client_perf_plugin_complete_cb_t)(
00162 void * user_specific,
00163 globus_ftp_client_handle_t * handle,
00164 globus_bool_t success);
00165
00182 typedef void * (*globus_ftp_client_perf_plugin_user_copy_cb_t)(
00183 void * user_specific);
00184
00200 typedef void (*globus_ftp_client_perf_plugin_user_destroy_cb_t)(
00201 void * user_specific);
00202
00203 globus_result_t
00204 globus_ftp_client_perf_plugin_init(
00205 globus_ftp_client_plugin_t * plugin,
00206 globus_ftp_client_perf_plugin_begin_cb_t begin_cb,
00207 globus_ftp_client_perf_plugin_marker_cb_t marker_cb,
00208 globus_ftp_client_perf_plugin_complete_cb_t complete_cb,
00209 void * user_specific);
00210
00211 globus_result_t
00212 globus_ftp_client_perf_plugin_set_copy_destroy(
00213 globus_ftp_client_plugin_t * plugin,
00214 globus_ftp_client_perf_plugin_user_copy_cb_t copy_cb,
00215 globus_ftp_client_perf_plugin_user_destroy_cb_t destroy_cb);
00216
00217 globus_result_t
00218 globus_ftp_client_perf_plugin_destroy(
00219 globus_ftp_client_plugin_t * plugin);
00220
00221 globus_result_t
00222 globus_ftp_client_perf_plugin_get_user_specific(
00223 globus_ftp_client_plugin_t * plugin,
00224 void ** user_specific);
00225
00226 #ifdef __cplusplus
00227 }
00228 #endif
00229
00230 #endif