17 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL 26 #ifndef GLOBUS_I_GASS_TRANSFER_H 27 #define GLOBUS_I_GASS_TRANSFER_H 31 #include "globus_i_gass_transfer_keyvalue.h" 37 extern globus_hashtable_t globus_i_gass_transfer_protocols;
38 extern globus_handle_table_t globus_i_gass_transfer_request_handles;
39 extern globus_handle_table_t globus_i_gass_transfer_listener_handles;
40 extern globus_list_t * globus_i_gass_transfer_requests;
41 extern globus_list_t * globus_i_gass_transfer_listeners;
42 extern globus_bool_t globus_i_gass_transfer_deactivating;
45 extern globus_module_descriptor_t globus_i_gass_transfer_http_module;
46 #define GLOBUS_I_GASS_TRANSFER_HTTP_MODULE (&globus_i_gass_transfer_http_module) 47 extern globus_module_descriptor_t globus_i_gass_transfer_ftp_module;
48 #define GLOBUS_I_GASS_TRANSFER_FTP_MODULE (&globus_i_gass_transfer_ftp_module) 51 globus_i_gass_transfer_http_descriptor;
53 globus_i_gass_transfer_https_descriptor;
55 globus_i_gass_transfer_ftp_descriptor;
57 globus_i_gass_transfer_gsiftp_descriptor;
68 globus_bool_t client_side;
71 globus_size_t handled_length;
72 globus_size_t posted_length;
75 globus_size_t referral_count;
77 globus_gass_transfer_callback_t callback;
80 globus_gass_transfer_callback_t fail_callback;
81 void * fail_callback_arg;
87 globus_fifo_t pending_data;
91 char * denial_message;
93 globus_object_t * attr;
98 } globus_gass_transfer_request_struct_t;
107 globus_gass_transfer_listener_status_t status;
112 void * listen_callback_arg;
115 void * close_callback_arg;
117 } globus_gass_transfer_listener_struct_t;
122 globus_bool_t last_data;
123 globus_size_t length;
124 globus_size_t wait_for_length;
131 globus_bool_t pending;
133 globus_byte_t * bytes;
136 } globus_gass_transfer_pending_t;
140 globus_i_gass_transfer_request_init(
142 globus_gass_transfer_requestattr_t * attr,
145 globus_gass_transfer_callback_t callback,
149 globus_i_gass_transfer_request_destroy(
155 globus_size_t length);
159 globus_i_gass_transfer_listener_destroy(
160 globus_gass_transfer_listener_t listener);
164 globus_i_gass_transfer_client_request(
169 (* globus_gass_transfer_dispatch_func_t) (
173 globus_i_gass_transfer_send_dispatcher(
177 globus_i_gass_transfer_recv_dispatcher(
181 globus_i_gass_transfer_fail(
183 globus_gass_transfer_request_struct_t * req,
184 globus_gass_transfer_callback_t callback,
185 void * callback_arg);
187 extern globus_cond_t globus_i_gass_transfer_shutdown_cond;
188 extern globus_mutex_t globus_i_gass_transfer_mutex;
190 #if defined(GLOBUS_DEBUG_GASS_TRANSFER) 191 #define globus_i_gass_transfer_lock() \ 192 thread_print(_GTSL("locking mutex at %s:%d\n"), __FILE__, __LINE__), \ 193 globus_mutex_lock(&globus_i_gass_transfer_mutex) 194 #define globus_i_gass_transfer_unlock() \ 195 thread_print(_GTSL("unlocking mutex at %s:%d\n"), __FILE__, __LINE__), \ 196 globus_mutex_unlock(&globus_i_gass_transfer_mutex) 198 #define globus_i_gass_transfer_lock() \ 199 globus_mutex_lock(&globus_i_gass_transfer_mutex) 200 #define globus_i_gass_transfer_unlock() \ 201 globus_mutex_unlock(&globus_i_gass_transfer_mutex) 205 globus_i_gass_transfer_close_listener(
206 globus_gass_transfer_listener_t listener,
207 globus_gass_transfer_listener_struct_t * l,
212 globus_i_gass_transfer_deactivate_callback(
void globus_gass_transfer_request_set_length(globus_gass_transfer_request_t request, globus_size_t length)
Definition: globus_gass_transfer_request.c:455
void(* globus_gass_transfer_bytes_callback_t)(void *arg, globus_gass_transfer_request_t request, globus_byte_t *bytes, globus_size_t length, globus_bool_t last_data)
Definition: globus_gass_transfer.h:531
Protocol module descriptor structure.
Definition: globus_gass_transfer_proto.h:452
globus_gass_transfer_request_type_t
Definition: globus_gass_transfer.h:145
Protocol module listener handling structure.
Definition: globus_gass_transfer_proto.h:432
GASS Transfer Protocol Interface.
void(* globus_gass_transfer_close_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:434
globus_gass_transfer_request_status_t
Definition: globus_gass_transfer.h:189
void(* globus_gass_transfer_listen_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:445
Protocol module request handling structure.
Definition: globus_gass_transfer_proto.h:386