22 #ifndef GLOBUS_GASS_TRANSFER_H
23 #define GLOBUS_GASS_TRANSFER_H
25 #include "globus_common.h"
31 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
95 extern globus_module_descriptor_t globus_i_gass_transfer_module;
101 #define GLOBUS_GASS_TRANSFER_MODULE (&globus_i_gass_transfer_module)
103 #define _GTSL(s) globus_common_i18n_get_string( \
104 GLOBUS_GASS_TRANSFER_MODULE, \
129 typedef globus_handle_t globus_gass_transfer_listener_t;
134 typedef globus_object_t * globus_gass_transfer_requestattr_t;
138 typedef globus_object_t * globus_gass_transfer_listenerattr_t;
159 GLOBUS_GASS_TRANSFER_FILE_MODE_BINARY,
160 GLOBUS_GASS_TRANSFER_FILE_MODE_TEXT
161 } globus_gass_transfer_file_mode_t;
166 GLOBUS_GASS_TRANSFER_AUTHORIZE_SELF,
167 GLOBUS_GASS_TRANSFER_AUTHORIZE_HOST,
168 GLOBUS_GASS_TRANSFER_AUTHORIZE_SUBJECT,
169 GLOBUS_GASS_TRANSFER_AUTHORIZE_CALLBACK
170 } globus_gass_transfer_authorization_t;
205 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
206 GLOBUS_GASS_TRANSFER_REQUEST_ACCEPTING,
211 GLOBUS_GASS_TRANSFER_REQUEST_ACTING,
212 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_PENDING,
213 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_FAILING,
215 GLOBUS_GASS_TRANSFER_REQUEST_FAILING,
218 GLOBUS_GASS_TRANSFER_REQUEST_USER_FAIL,
220 GLOBUS_GASS_TRANSFER_REQUEST_REFERRING,
222 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_REFERRING,
224 GLOBUS_GASS_TRANSFER_REQUEST_FINISHING,
227 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL1,
229 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL2,
231 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL3,
233 GLOBUS_GASS_TRANSFER_REQUEST_STARTING2,
234 GLOBUS_GASS_TRANSFER_REQUEST_STARTING3
240 GLOBUS_GASS_TRANSFER_LISTENER_INVALID,
241 GLOBUS_GASS_TRANSFER_LISTENER_STARTING,
242 GLOBUS_GASS_TRANSFER_LISTENER_LISTENING,
244 GLOBUS_GASS_TRANSFER_LISTENER_READY,
245 GLOBUS_GASS_TRANSFER_LISTENER_ACCEPTING,
246 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING1,
248 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING2,
250 GLOBUS_GASS_TRANSFER_LISTENER_CLOSED
251 } globus_gass_transfer_listener_status_t;
304 GLOBUS_GASS_TRANSFER_DEFAULT_BUFFER_LENGTH = 1024
314 #define GLOBUS_GASS_TRANSFER_LENGTH_UNKNOWN 0UL
323 #define GLOBUS_GASS_TRANSFER_TIMESTAMP_UNKNOWN 0UL
326 (* globus_gass_transfer_callback_t)(
354 globus_gass_transfer_requestattr_t * attr,
356 globus_gass_transfer_callback_t callback,
362 globus_gass_transfer_requestattr_t * attr,
368 globus_gass_transfer_requestattr_t * attr,
370 globus_size_t length,
371 globus_gass_transfer_callback_t callback,
377 globus_gass_transfer_requestattr_t * attr,
379 globus_size_t length);
384 globus_gass_transfer_requestattr_t * attr,
386 globus_size_t length,
387 globus_gass_transfer_callback_t callback,
393 globus_gass_transfer_requestattr_t * attr,
395 globus_size_t length);
436 globus_gass_transfer_listener_t listener);
447 globus_gass_transfer_listener_t listener);
451 globus_gass_transfer_listener_t * listener,
452 globus_gass_transfer_listenerattr_t * attr,
457 globus_gass_transfer_listener_t listener,
463 globus_gass_transfer_listener_t listener,
470 globus_gass_transfer_requestattr_t * attr,
471 globus_gass_transfer_listener_t listener,
472 globus_gass_transfer_callback_t callback,
479 globus_size_t num_urls);
484 globus_size_t total_length);
494 globus_gass_transfer_listener_t listener);
498 globus_gass_transfer_listener_t listener);
502 globus_gass_transfer_listener_t listener,
503 void * user_pointer);
534 globus_byte_t * bytes,
535 globus_size_t length,
536 globus_bool_t last_data);
541 globus_byte_t * bytes,
542 globus_size_t send_length,
543 globus_bool_t last_data,
550 globus_byte_t * bytes,
551 globus_size_t max_length,
552 globus_size_t wait_for_length,
557 globus_gass_transfer_fail(
559 globus_gass_transfer_callback_t callback,
584 } globus_gass_transfer_referral_t;
589 globus_gass_transfer_referral_t * referral);
593 globus_gass_transfer_referral_t * referral,
594 globus_size_t index);
598 globus_gass_transfer_referral_t * referral);
645 globus_gass_transfer_request_set_subject(
652 globus_gass_transfer_referral_t * referral);
682 void * user_pointer);
706 globus_gass_transfer_requestattr_t * attr,
711 globus_gass_transfer_requestattr_t * attr);
715 globus_gass_transfer_listenerattr_t * attr,
719 globus_gass_transfer_listenerattr_destroy(
720 globus_gass_transfer_listenerattr_t * attr);
725 globus_gass_transfer_requestattr_t * attr,
729 globus_gass_transfer_requestattr_get_proxy_url(
730 globus_gass_transfer_requestattr_t * attr,
735 globus_gass_transfer_requestattr_t * attr,
736 globus_size_t block_size);
739 globus_gass_transfer_requestattr_get_block_size(
740 globus_gass_transfer_requestattr_t * attr,
741 globus_size_t * block_size);
745 globus_gass_transfer_requestattr_t * attr,
746 globus_gass_transfer_file_mode_t file_mode);
749 globus_gass_transfer_requestattr_get_file_mode(
750 globus_gass_transfer_requestattr_t * attr,
751 globus_gass_transfer_file_mode_t * file_mode);
755 globus_gass_transfer_requestattr_t * attr,
756 globus_bool_t connection_reuse);
759 globus_gass_transfer_requestattr_get_connection_reuse(
760 globus_gass_transfer_requestattr_t * attr,
761 globus_bool_t * connection_reuse);
766 globus_gass_transfer_requestattr_t * attr,
770 globus_gass_transfer_requestattr_get_socket_sndbuf(
771 globus_gass_transfer_requestattr_t * attr,
776 globus_gass_transfer_requestattr_t * attr,
780 globus_gass_transfer_requestattr_get_socket_rcvbuf(
781 globus_gass_transfer_requestattr_t * attr,
786 globus_gass_transfer_requestattr_t * attr,
787 globus_bool_t nodelay);
790 globus_gass_transfer_requestattr_get_socket_nodelay(
791 globus_gass_transfer_requestattr_t * attr,
792 globus_bool_t * nodelay);
797 globus_gass_transfer_requestattr_t * attr,
798 globus_gass_transfer_authorization_t mode,
802 globus_gass_transfer_secure_requestattr_get_authorization(
803 globus_gass_transfer_requestattr_t * attr,
804 globus_gass_transfer_authorization_t * mode,
816 globus_gass_transfer_listenerattr_t * attr,
820 globus_gass_transfer_listenerattr_get_backlog(
821 globus_gass_transfer_listenerattr_t * attr,
826 globus_gass_transfer_listenerattr_t * attr,
827 unsigned short port);
830 globus_gass_transfer_listenerattr_get_port(
831 globus_gass_transfer_listenerattr_t * attr,
832 unsigned short * port);
840 extern const globus_object_type_t
841 GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION;
843 #define GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR \
844 (&GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION)
848 globus_object_t * obj,
850 globus_size_t block_size,
851 globus_gass_transfer_file_mode_t file_mode,
852 globus_bool_t connection_reuse);
854 extern const globus_object_type_t
855 GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION;
857 #define GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR \
858 (&GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION)
862 globus_object_t * obj,
864 globus_size_t block_size,
865 globus_gass_transfer_file_mode_t file_mode,
866 globus_bool_t connection_reuse,
869 globus_bool_t nodelay);
871 extern const globus_object_type_t
872 GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION;
874 #define GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR \
875 (&GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION)
879 globus_object_t * obj,
881 globus_size_t block_size,
882 globus_gass_transfer_file_mode_t file_mode,
883 globus_bool_t connection_reuse,
886 globus_bool_t nodelay,
887 globus_gass_transfer_authorization_t authorization,
891 extern const globus_object_type_t
892 GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION;
894 #define GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR \
895 (&GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION)
899 globus_object_t * obj,
901 unsigned short port);
@ GLOBUS_GASS_TRANSFER_ERROR_INVALID_USE
Definition: globus_gass_transfer.h:280
@ GLOBUS_GASS_TRANSFER_ERROR_TOO_LARGE
Definition: globus_gass_transfer.h:282
@ GLOBUS_GASS_TRANSFER_ERROR_REQUEST_FAILED
Definition: globus_gass_transfer.h:284
@ GLOBUS_GASS_TRANSFER_ERROR_OPEN_FAILED
Definition: globus_gass_transfer.h:290
@ GLOBUS_GASS_TRANSFER_ERROR_MALLOC_FAILED
Definition: globus_gass_transfer.h:270
@ GLOBUS_GASS_TRANSFER_ERROR_DONE
Definition: globus_gass_transfer.h:286
@ GLOBUS_GASS_TRANSFER_ERROR_ALREADY_REGISTERED
Definition: globus_gass_transfer.h:288
@ GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER
Definition: globus_gass_transfer.h:274
@ GLOBUS_GASS_TRANSFER_ERROR_BAD_URL
Definition: globus_gass_transfer.h:264
@ GLOBUS_GASS_TRANSFER_ERROR_BAD_PORT
Definition: globus_gass_transfer.h:260
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_REGISTERED
Definition: globus_gass_transfer.h:276
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_INITIALIZED
Definition: globus_gass_transfer.h:272
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_FOUND
Definition: globus_gass_transfer.h:278
@ GLOBUS_GASS_TRANSFER_ERROR_TRANSFER_FAILED
Definition: globus_gass_transfer.h:292
@ GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR
Definition: globus_gass_transfer.h:262
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED
Definition: globus_gass_transfer.h:268
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_SUPPORTED
Definition: globus_gass_transfer.h:266
int globus_gass_transfer_register_get(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_gass_transfer_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_client.c:89
int globus_gass_transfer_append(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)
Definition: globus_gass_transfer_client.c:549
int globus_gass_transfer_register_put(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length, globus_gass_transfer_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_client.c:266
int globus_gass_transfer_register_append(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length, globus_gass_transfer_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_client.c:453
int globus_gass_transfer_get(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url)
Definition: globus_gass_transfer_client.c:177
int globus_gass_transfer_put(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)
Definition: globus_gass_transfer_client.c:361
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
int globus_gass_transfer_receive_bytes(globus_gass_transfer_request_t request, globus_byte_t *bytes, globus_size_t max_length, globus_size_t wait_for_length, globus_gass_transfer_bytes_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_send_recv.c:279
int globus_gass_transfer_send_bytes(globus_gass_transfer_request_t request, globus_byte_t *bytes, globus_size_t send_length, globus_bool_t last_data, globus_gass_transfer_bytes_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_send_recv.c:107
int globus_gass_transfer_listenerattr_set_port(globus_gass_transfer_listenerattr_t *attr, unsigned short port)
Definition: globus_gass_transfer_attribute.c:1268
int globus_gass_transfer_listenerattr_set_backlog(globus_gass_transfer_listenerattr_t *attr, int backlog)
Definition: globus_gass_transfer_attribute.c:1190
char * globus_gass_transfer_referral_get_url(globus_gass_transfer_referral_t *referral, globus_size_t index)
Definition: globus_gass_transfer_referral.c:80
globus_size_t globus_gass_transfer_referral_get_count(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:45
int globus_gass_transfer_referral_destroy(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:119
int globus_gass_transfer_request_destroy(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:632
char * globus_gass_transfer_request_get_denial_message(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:528
globus_gass_transfer_request_type_t
Definition: globus_gass_transfer.h:146
globus_gass_transfer_request_status_t globus_gass_transfer_request_get_status(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:155
int globus_gass_transfer_request_set_type(globus_gass_transfer_request_t request, globus_gass_transfer_request_type_t type)
Definition: globus_gass_transfer_request.c:363
globus_size_t globus_gass_transfer_request_get_length(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:322
int globus_gass_transfer_request_set_user_pointer(globus_gass_transfer_request_t request, void *user_pointer)
Definition: globus_gass_transfer_request.c:117
globus_gass_transfer_request_status_t
Definition: globus_gass_transfer.h:190
int globus_gass_transfer_request_get_denial_reason(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:493
int globus_gass_transfer_request_get_referral(globus_gass_transfer_request_t request, globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_request.c:226
int globus_gass_transfer_request_set_url(globus_gass_transfer_request_t request, char *url)
Definition: globus_gass_transfer_request.c:412
char * globus_gass_transfer_request_get_url(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:287
globus_gass_transfer_request_type_t globus_gass_transfer_request_get_type(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:43
void * globus_gass_transfer_request_get_user_pointer(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:77
char * globus_gass_transfer_request_get_subject(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:562
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_INVALID
Definition: globus_gass_transfer.h:148
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_GET
Definition: globus_gass_transfer.h:150
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_APPEND
Definition: globus_gass_transfer.h:154
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_PUT
Definition: globus_gass_transfer.h:152
@ GLOBUS_GASS_TRANSFER_REQUEST_STARTING
Definition: globus_gass_transfer.h:192
@ GLOBUS_GASS_TRANSFER_REQUEST_FAILED
Definition: globus_gass_transfer.h:196
@ GLOBUS_GASS_TRANSFER_REQUEST_REFERRED
Definition: globus_gass_transfer.h:199
@ GLOBUS_GASS_TRANSFER_REQUEST_DENIED
Definition: globus_gass_transfer.h:202
@ GLOBUS_GASS_TRANSFER_REQUEST_INVALID
Definition: globus_gass_transfer.h:191
@ GLOBUS_GASS_TRANSFER_REQUEST_DONE
Definition: globus_gass_transfer.h:204
@ GLOBUS_GASS_TRANSFER_REQUEST_PENDING
Definition: globus_gass_transfer.h:195
globus_object_t * globus_gass_transfer_secure_requestattr_initialize(globus_object_t *obj, char *proxy_url, globus_size_t block_size, globus_gass_transfer_file_mode_t file_mode, globus_bool_t connection_reuse, int sndbuf, int rcvbuf, globus_bool_t nodelay, globus_gass_transfer_authorization_t authorization, char *subject)
Definition: globus_gass_transfer_attribute.c:931
globus_object_t * globus_gass_transfer_socket_requestattr_initialize(globus_object_t *obj, char *proxy_url, globus_size_t block_size, globus_gass_transfer_file_mode_t file_mode, globus_bool_t connection_reuse, int sndbuf, int rcvbuf, globus_bool_t nodelay)
Definition: globus_gass_transfer_attribute.c:633
globus_object_t * globus_gass_transfer_requestattr_initialize(globus_object_t *obj, char *proxy_url, globus_size_t block_size, globus_gass_transfer_file_mode_t file_mode, globus_bool_t connection_reuse)
Definition: globus_gass_transfer_attribute.c:157
globus_object_t * globus_gass_transfer_listenerattr_initialize(globus_object_t *obj, int backlog, unsigned short port)
Definition: globus_gass_transfer_attribute.c:1086
int globus_gass_transfer_requestattr_set_socket_nodelay(globus_gass_transfer_requestattr_t *attr, globus_bool_t nodelay)
Definition: globus_gass_transfer_attribute.c:855
int globus_gass_transfer_requestattr_set_proxy_url(globus_gass_transfer_requestattr_t *attr, char *proxy_url)
Definition: globus_gass_transfer_attribute.c:310
int globus_gass_transfer_requestattr_set_connection_reuse(globus_gass_transfer_requestattr_t *attr, globus_bool_t connection_reuse)
Definition: globus_gass_transfer_attribute.c:559
int globus_gass_transfer_requestattr_set_socket_rcvbuf(globus_gass_transfer_requestattr_t *attr, int rcvbuf)
Definition: globus_gass_transfer_attribute.c:776
int globus_gass_transfer_listenerattr_init(globus_gass_transfer_listenerattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:1136
int globus_gass_transfer_requestattr_set_file_mode(globus_gass_transfer_requestattr_t *attr, globus_gass_transfer_file_mode_t file_mode)
Definition: globus_gass_transfer_attribute.c:480
int globus_gass_transfer_requestattr_destroy(globus_gass_transfer_requestattr_t *attr)
Definition: globus_gass_transfer_attribute.c:267
int globus_gass_transfer_secure_requestattr_set_authorization(globus_gass_transfer_requestattr_t *attr, globus_gass_transfer_authorization_t mode, char *subject)
Definition: globus_gass_transfer_attribute.c:1001
int globus_gass_transfer_requestattr_init(globus_gass_transfer_requestattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:219
int globus_gass_transfer_requestattr_set_block_size(globus_gass_transfer_requestattr_t *attr, globus_size_t block_size)
Definition: globus_gass_transfer_attribute.c:401
int globus_gass_transfer_requestattr_set_socket_sndbuf(globus_gass_transfer_requestattr_t *attr, int sndbuf)
Definition: globus_gass_transfer_attribute.c:697
int globus_gass_transfer_authorize(globus_gass_transfer_request_t request, globus_size_t total_length)
Definition: globus_gass_transfer_server.c:692
void(* globus_gass_transfer_listen_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:445
int globus_gass_transfer_refer(globus_gass_transfer_request_t request, char **urls, globus_size_t num_urls)
Definition: globus_gass_transfer_server.c:561
void(* globus_gass_transfer_close_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:434
int globus_gass_transfer_close_listener(globus_gass_transfer_listener_t listener, globus_gass_transfer_close_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_server.c:168
void * globus_gass_transfer_listener_get_user_pointer(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:431
int globus_gass_transfer_listener_set_user_pointer(globus_gass_transfer_listener_t listener, void *user_pointer)
Definition: globus_gass_transfer_server.c:470
int globus_gass_transfer_create_listener(globus_gass_transfer_listener_t *listener, globus_gass_transfer_listenerattr_t *attr, char *scheme)
Definition: globus_gass_transfer_server.c:69
int globus_gass_transfer_deny(globus_gass_transfer_request_t request, int reason, char *message)
Definition: globus_gass_transfer_server.c:805
int globus_gass_transfer_register_accept(globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, globus_gass_transfer_listener_t listener, globus_gass_transfer_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_server.c:329
char * globus_gass_transfer_listener_get_base_url(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:508
int globus_gass_transfer_register_listen(globus_gass_transfer_listener_t listener, globus_gass_transfer_listen_callback_t callback, void *user_arg)
Definition: globus_gass_transfer_server.c:228