00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef GLOBUS_GLOBUS_URL_COPY_H
00018 #define GLOBUS_GLOBUS_URL_COPY_H 1
00019
00020 #define GLOBUS_URL_COPY_ARG_ASCII 1
00021 #define GLOBUS_URL_COPY_ARG_BINARY 2
00022 #define GLOBUS_URL_COPY_ARG_VERBOSE 4
00023
00024 #include "globus_ftp_client_plugin.h"
00025 #include "gssapi.h"
00026
00027 typedef struct globus_guc_src_dst_pair_s
00028 {
00029 char * src_url;
00030 char * dst_url;
00031 } globus_guc_src_dst_pair_t;
00032
00033 typedef struct globus_guc_info_s
00034 {
00035 globus_fifo_t * user_url_list;
00036
00037 char * source_subject;
00038 char * dest_subject;
00039 unsigned long options;
00040 globus_size_t block_size;
00041 globus_size_t tcp_buffer_size;
00042 int num_streams;
00043 int conc;
00044 globus_bool_t no_3pt;
00045 globus_bool_t no_dcau;
00046 globus_bool_t data_safe;
00047 globus_bool_t data_private;
00048 globus_bool_t cancelled;
00049 globus_bool_t recurse;
00050 int restart_retries;
00051 int restart_interval;
00052 int restart_timeout;
00053 int stall_timeout;
00054 globus_size_t stripe_bs;
00055 globus_bool_t striped;
00056 globus_bool_t rfc1738;
00057 globus_bool_t create_dest;
00058 globus_off_t partial_offset;
00059 globus_off_t partial_length;
00060 globus_bool_t list_uses_data_mode;
00061 globus_bool_t ipv6;
00062 globus_bool_t gridftp2;
00063 globus_bool_t udt;
00064 globus_bool_t allo;
00065 char * src_net_stack_str;
00066 char * src_disk_stack_str;
00067 char * dst_net_stack_str;
00068 char * dst_disk_stack_str;
00069 char * src_authz_assert;
00070 char * dst_authz_assert;
00071 globus_bool_t cache_src_authz_assert;
00072 globus_bool_t cache_dst_authz_assert;
00073 gss_cred_id_t src_cred;
00074 gss_cred_id_t dst_cred;
00075 gss_cred_id_t data_cred;
00076
00077 globus_bool_t verbose;
00078 globus_bool_t quiet;
00079 globus_bool_t delayed_pasv;
00080 globus_bool_t pipeline;
00081 } globus_guc_info_t;
00082
00083 typedef struct globus_l_guc_plugin_op_s * globus_guc_plugin_op_t;
00084
00085 void
00086 globus_guc_copy_performance_update(
00087 globus_off_t total_bytes,
00088 float instantaneous_throughput,
00089 float avg_throughput);
00090
00091 void
00092 globus_guc_transfer_update(
00093 const char * src_url,
00094 const char * dst_url,
00095 const char * src_fname,
00096 const char * dst_fname);
00097
00098 void
00099 globus_guc_plugin_finished(
00100 globus_guc_plugin_op_t done_op,
00101 globus_result_t result);
00102
00103 typedef globus_result_t
00104 (*globus_guc_plugin_start_t)(
00105 void ** handle,
00106 globus_guc_info_t * guc_info,
00107 globus_guc_plugin_op_t done_op,
00108 int argc,
00109 char ** argv);
00110
00111 typedef void
00112 (*globus_guc_plugin_cancel_t)(
00113 void * handle);
00114
00115 typedef void
00116 (*globus_guc_plugin_cleanup_t)(
00117 void * handle);
00118
00119 typedef struct globus_guc_plugin_funcs_s
00120 {
00121 globus_guc_plugin_start_t start_func;
00122 globus_guc_plugin_cancel_t cancel_func;
00123 globus_guc_plugin_cleanup_t cleanup_func;
00124 } globus_guc_plugin_funcs_t;
00125
00126 typedef globus_result_t
00127 (*globus_guc_client_plugin_init_t)(
00128 globus_ftp_client_plugin_t * plugin,
00129 char * in_args);
00130
00131 typedef struct globus_guc_client_plugin_funcs_s
00132 {
00133 globus_guc_client_plugin_init_t init_func;
00134 } globus_guc_client_plugin_funcs_t;
00135
00136 extern globus_extension_registry_t globus_guc_client_plugin_registry;
00137 extern globus_extension_registry_t globus_guc_plugin_registry;
00138
00139 #define GUC_PLUGIN_FUNCS "guc_funcs"
00140
00141 #endif
00142
00143