2 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
11 #ifndef GLOBUS_I_GASS_TRANSFER_H
12 #define GLOBUS_I_GASS_TRANSFER_H
16 #include "globus_i_gass_transfer_keyvalue.h"
22 extern globus_hashtable_t globus_i_gass_transfer_protocols;
23 extern globus_handle_table_t globus_i_gass_transfer_request_handles;
24 extern globus_handle_table_t globus_i_gass_transfer_listener_handles;
25 extern globus_list_t * globus_i_gass_transfer_requests;
26 extern globus_list_t * globus_i_gass_transfer_listeners;
27 extern globus_bool_t globus_i_gass_transfer_deactivating;
30 extern globus_module_descriptor_t globus_i_gass_transfer_http_module;
31 #define GLOBUS_I_GASS_TRANSFER_HTTP_MODULE (&globus_i_gass_transfer_http_module)
32 extern globus_module_descriptor_t globus_i_gass_transfer_ftp_module;
33 #define GLOBUS_I_GASS_TRANSFER_FTP_MODULE (&globus_i_gass_transfer_ftp_module)
36 globus_i_gass_transfer_http_descriptor;
38 globus_i_gass_transfer_https_descriptor;
40 globus_i_gass_transfer_ftp_descriptor;
42 globus_i_gass_transfer_gsiftp_descriptor;
53 globus_bool_t client_side;
56 globus_size_t handled_length;
57 globus_size_t posted_length;
60 globus_size_t referral_count;
62 globus_gass_transfer_callback_t callback;
65 globus_gass_transfer_callback_t fail_callback;
66 void * fail_callback_arg;
72 globus_fifo_t pending_data;
76 char * denial_message;
78 globus_object_t * attr;
83 } globus_gass_transfer_request_struct_t;
92 globus_gass_transfer_listener_status_t status;
97 void * listen_callback_arg;
100 void * close_callback_arg;
102 } globus_gass_transfer_listener_struct_t;
107 globus_bool_t last_data;
108 globus_size_t length;
109 globus_size_t wait_for_length;
116 globus_bool_t pending;
118 globus_byte_t * bytes;
121 } globus_gass_transfer_pending_t;
125 globus_i_gass_transfer_request_init(
127 globus_gass_transfer_requestattr_t * attr,
130 globus_gass_transfer_callback_t callback,
134 globus_i_gass_transfer_request_destroy(
140 globus_size_t length);
144 globus_i_gass_transfer_listener_destroy(
145 globus_gass_transfer_listener_t listener);
149 globus_i_gass_transfer_client_request(
154 (* globus_gass_transfer_dispatch_func_t) (
158 globus_i_gass_transfer_send_dispatcher(
162 globus_i_gass_transfer_recv_dispatcher(
166 globus_i_gass_transfer_fail(
168 globus_gass_transfer_request_struct_t * req,
169 globus_gass_transfer_callback_t callback,
170 void * callback_arg);
172 extern globus_cond_t globus_i_gass_transfer_shutdown_cond;
173 extern globus_mutex_t globus_i_gass_transfer_mutex;
175 #if defined(GLOBUS_DEBUG_GASS_TRANSFER)
176 #define globus_i_gass_transfer_lock() \
177 thread_print(_GTSL("locking mutex at %s:%d\n"), __FILE__, __LINE__), \
178 globus_mutex_lock(&globus_i_gass_transfer_mutex)
179 #define globus_i_gass_transfer_unlock() \
180 thread_print(_GTSL("unlocking mutex at %s:%d\n"), __FILE__, __LINE__), \
181 globus_mutex_unlock(&globus_i_gass_transfer_mutex)
183 #define globus_i_gass_transfer_lock() \
184 globus_mutex_lock(&globus_i_gass_transfer_mutex)
185 #define globus_i_gass_transfer_unlock() \
186 globus_mutex_unlock(&globus_i_gass_transfer_mutex)
190 globus_i_gass_transfer_close_listener(
191 globus_gass_transfer_listener_t listener,
192 globus_gass_transfer_listener_struct_t * l,
197 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:440
void(* globus_gass_transfer_listen_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:427
Protocol module descriptor structure.
Definition: globus_gass_transfer_proto.h:436
globus_gass_transfer_request_type_t
Definition: globus_gass_transfer.h:129
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:512
Protocol module listener handling structure.
Definition: globus_gass_transfer_proto.h:416
GASS Transfer Protocol Interface.
globus_gass_transfer_request_status_t
Definition: globus_gass_transfer.h:173
void(* globus_gass_transfer_close_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:416
Protocol module request handling structure.
Definition: globus_gass_transfer_proto.h:370