7 #ifndef GLOBUS_GASS_TRANSFER_H
8 #define GLOBUS_GASS_TRANSFER_H
10 #include "globus_common.h"
16 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
79 extern globus_module_descriptor_t globus_i_gass_transfer_module;
85 #define GLOBUS_GASS_TRANSFER_MODULE (&globus_i_gass_transfer_module)
87 #define _GTSL(s) globus_common_i18n_get_string( \
88 GLOBUS_GASS_TRANSFER_MODULE, \
113 typedef globus_handle_t globus_gass_transfer_listener_t;
118 typedef globus_object_t * globus_gass_transfer_requestattr_t;
122 typedef globus_object_t * globus_gass_transfer_listenerattr_t;
143 GLOBUS_GASS_TRANSFER_FILE_MODE_BINARY,
144 GLOBUS_GASS_TRANSFER_FILE_MODE_TEXT
145 } globus_gass_transfer_file_mode_t;
150 GLOBUS_GASS_TRANSFER_AUTHORIZE_SELF,
151 GLOBUS_GASS_TRANSFER_AUTHORIZE_HOST,
152 GLOBUS_GASS_TRANSFER_AUTHORIZE_SUBJECT,
153 GLOBUS_GASS_TRANSFER_AUTHORIZE_CALLBACK
154 } globus_gass_transfer_authorization_t;
189 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
190 GLOBUS_GASS_TRANSFER_REQUEST_ACCEPTING,
195 GLOBUS_GASS_TRANSFER_REQUEST_ACTING,
196 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_PENDING,
197 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_FAILING,
199 GLOBUS_GASS_TRANSFER_REQUEST_FAILING,
202 GLOBUS_GASS_TRANSFER_REQUEST_USER_FAIL,
204 GLOBUS_GASS_TRANSFER_REQUEST_REFERRING,
206 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_REFERRING,
208 GLOBUS_GASS_TRANSFER_REQUEST_FINISHING,
211 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL1,
213 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL2,
215 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL3,
217 GLOBUS_GASS_TRANSFER_REQUEST_STARTING2,
218 GLOBUS_GASS_TRANSFER_REQUEST_STARTING3
224 GLOBUS_GASS_TRANSFER_LISTENER_INVALID,
225 GLOBUS_GASS_TRANSFER_LISTENER_STARTING,
226 GLOBUS_GASS_TRANSFER_LISTENER_LISTENING,
228 GLOBUS_GASS_TRANSFER_LISTENER_READY,
229 GLOBUS_GASS_TRANSFER_LISTENER_ACCEPTING,
230 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING1,
232 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING2,
234 GLOBUS_GASS_TRANSFER_LISTENER_CLOSED
235 } globus_gass_transfer_listener_status_t;
288 GLOBUS_GASS_TRANSFER_DEFAULT_BUFFER_LENGTH = 1024
298 #define GLOBUS_GASS_TRANSFER_LENGTH_UNKNOWN 0UL
307 #define GLOBUS_GASS_TRANSFER_TIMESTAMP_UNKNOWN 0UL
310 (* globus_gass_transfer_callback_t)(
337 globus_gass_transfer_requestattr_t * attr,
339 globus_gass_transfer_callback_t callback,
345 globus_gass_transfer_requestattr_t * attr,
351 globus_gass_transfer_requestattr_t * attr,
353 globus_size_t length,
354 globus_gass_transfer_callback_t callback,
360 globus_gass_transfer_requestattr_t * attr,
362 globus_size_t length);
367 globus_gass_transfer_requestattr_t * attr,
369 globus_size_t length,
370 globus_gass_transfer_callback_t callback,
376 globus_gass_transfer_requestattr_t * attr,
378 globus_size_t length);
418 globus_gass_transfer_listener_t listener);
429 globus_gass_transfer_listener_t listener);
433 globus_gass_transfer_listener_t * listener,
434 globus_gass_transfer_listenerattr_t * attr,
439 globus_gass_transfer_listener_t listener,
445 globus_gass_transfer_listener_t listener,
452 globus_gass_transfer_requestattr_t * attr,
453 globus_gass_transfer_listener_t listener,
454 globus_gass_transfer_callback_t callback,
461 globus_size_t num_urls);
466 globus_size_t total_length);
476 globus_gass_transfer_listener_t listener);
480 globus_gass_transfer_listener_t listener);
484 globus_gass_transfer_listener_t listener,
485 void * user_pointer);
515 globus_byte_t * bytes,
516 globus_size_t length,
517 globus_bool_t last_data);
522 globus_byte_t * bytes,
523 globus_size_t send_length,
524 globus_bool_t last_data,
531 globus_byte_t * bytes,
532 globus_size_t max_length,
533 globus_size_t wait_for_length,
538 globus_gass_transfer_fail(
540 globus_gass_transfer_callback_t callback,
564 } globus_gass_transfer_referral_t;
569 globus_gass_transfer_referral_t * referral);
573 globus_gass_transfer_referral_t * referral,
574 globus_size_t index);
578 globus_gass_transfer_referral_t * referral);
624 globus_gass_transfer_request_set_subject(
631 globus_gass_transfer_referral_t * referral);
661 void * user_pointer);
684 globus_gass_transfer_requestattr_t * attr,
689 globus_gass_transfer_requestattr_t * attr);
693 globus_gass_transfer_listenerattr_t * attr,
697 globus_gass_transfer_listenerattr_destroy(
698 globus_gass_transfer_listenerattr_t * attr);
703 globus_gass_transfer_requestattr_t * attr,
707 globus_gass_transfer_requestattr_get_proxy_url(
708 globus_gass_transfer_requestattr_t * attr,
713 globus_gass_transfer_requestattr_t * attr,
714 globus_size_t block_size);
717 globus_gass_transfer_requestattr_get_block_size(
718 globus_gass_transfer_requestattr_t * attr,
719 globus_size_t * block_size);
723 globus_gass_transfer_requestattr_t * attr,
724 globus_gass_transfer_file_mode_t file_mode);
727 globus_gass_transfer_requestattr_get_file_mode(
728 globus_gass_transfer_requestattr_t * attr,
729 globus_gass_transfer_file_mode_t * file_mode);
733 globus_gass_transfer_requestattr_t * attr,
734 globus_bool_t connection_reuse);
737 globus_gass_transfer_requestattr_get_connection_reuse(
738 globus_gass_transfer_requestattr_t * attr,
739 globus_bool_t * connection_reuse);
744 globus_gass_transfer_requestattr_t * attr,
748 globus_gass_transfer_requestattr_get_socket_sndbuf(
749 globus_gass_transfer_requestattr_t * attr,
754 globus_gass_transfer_requestattr_t * attr,
758 globus_gass_transfer_requestattr_get_socket_rcvbuf(
759 globus_gass_transfer_requestattr_t * attr,
764 globus_gass_transfer_requestattr_t * attr,
765 globus_bool_t nodelay);
768 globus_gass_transfer_requestattr_get_socket_nodelay(
769 globus_gass_transfer_requestattr_t * attr,
770 globus_bool_t * nodelay);
775 globus_gass_transfer_requestattr_t * attr,
776 globus_gass_transfer_authorization_t mode,
780 globus_gass_transfer_secure_requestattr_get_authorization(
781 globus_gass_transfer_requestattr_t * attr,
782 globus_gass_transfer_authorization_t * mode,
793 globus_gass_transfer_listenerattr_t * attr,
797 globus_gass_transfer_listenerattr_get_backlog(
798 globus_gass_transfer_listenerattr_t * attr,
803 globus_gass_transfer_listenerattr_t * attr,
804 unsigned short port);
807 globus_gass_transfer_listenerattr_get_port(
808 globus_gass_transfer_listenerattr_t * attr,
809 unsigned short * port);
816 extern const globus_object_type_t
817 GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION;
819 #define GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR \
820 (&GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION)
824 globus_object_t * obj,
826 globus_size_t block_size,
827 globus_gass_transfer_file_mode_t file_mode,
828 globus_bool_t connection_reuse);
830 extern const globus_object_type_t
831 GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION;
833 #define GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR \
834 (&GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION)
838 globus_object_t * obj,
840 globus_size_t block_size,
841 globus_gass_transfer_file_mode_t file_mode,
842 globus_bool_t connection_reuse,
845 globus_bool_t nodelay);
847 extern const globus_object_type_t
848 GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION;
850 #define GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR \
851 (&GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION)
855 globus_object_t * obj,
857 globus_size_t block_size,
858 globus_gass_transfer_file_mode_t file_mode,
859 globus_bool_t connection_reuse,
862 globus_bool_t nodelay,
863 globus_gass_transfer_authorization_t authorization,
867 extern const globus_object_type_t
868 GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION;
870 #define GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR \
871 (&GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION)
875 globus_object_t * obj,
877 unsigned short port);
@ GLOBUS_GASS_TRANSFER_ERROR_INVALID_USE
Definition: globus_gass_transfer.h:264
@ GLOBUS_GASS_TRANSFER_ERROR_TOO_LARGE
Definition: globus_gass_transfer.h:266
@ GLOBUS_GASS_TRANSFER_ERROR_REQUEST_FAILED
Definition: globus_gass_transfer.h:268
@ GLOBUS_GASS_TRANSFER_ERROR_OPEN_FAILED
Definition: globus_gass_transfer.h:274
@ GLOBUS_GASS_TRANSFER_ERROR_MALLOC_FAILED
Definition: globus_gass_transfer.h:254
@ GLOBUS_GASS_TRANSFER_ERROR_DONE
Definition: globus_gass_transfer.h:270
@ GLOBUS_GASS_TRANSFER_ERROR_ALREADY_REGISTERED
Definition: globus_gass_transfer.h:272
@ GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER
Definition: globus_gass_transfer.h:258
@ GLOBUS_GASS_TRANSFER_ERROR_BAD_URL
Definition: globus_gass_transfer.h:248
@ GLOBUS_GASS_TRANSFER_ERROR_BAD_PORT
Definition: globus_gass_transfer.h:244
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_REGISTERED
Definition: globus_gass_transfer.h:260
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_INITIALIZED
Definition: globus_gass_transfer.h:256
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_FOUND
Definition: globus_gass_transfer.h:262
@ GLOBUS_GASS_TRANSFER_ERROR_TRANSFER_FAILED
Definition: globus_gass_transfer.h:276
@ GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR
Definition: globus_gass_transfer.h:246
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED
Definition: globus_gass_transfer.h:252
@ GLOBUS_GASS_TRANSFER_ERROR_NOT_SUPPORTED
Definition: globus_gass_transfer.h:250
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:74
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:534
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:251
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:438
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:162
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:346
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
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:264
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:92
int globus_gass_transfer_listenerattr_set_port(globus_gass_transfer_listenerattr_t *attr, unsigned short port)
Definition: globus_gass_transfer_attribute.c:1253
int globus_gass_transfer_listenerattr_set_backlog(globus_gass_transfer_listenerattr_t *attr, int backlog)
Definition: globus_gass_transfer_attribute.c:1175
char * globus_gass_transfer_referral_get_url(globus_gass_transfer_referral_t *referral, globus_size_t index)
Definition: globus_gass_transfer_referral.c:65
globus_size_t globus_gass_transfer_referral_get_count(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:30
int globus_gass_transfer_referral_destroy(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:104
int globus_gass_transfer_request_destroy(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:617
char * globus_gass_transfer_request_get_denial_message(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:513
globus_gass_transfer_request_type_t
Definition: globus_gass_transfer.h:130
globus_gass_transfer_request_status_t globus_gass_transfer_request_get_status(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:140
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:348
globus_size_t globus_gass_transfer_request_get_length(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:307
int globus_gass_transfer_request_set_user_pointer(globus_gass_transfer_request_t request, void *user_pointer)
Definition: globus_gass_transfer_request.c:102
globus_gass_transfer_request_status_t
Definition: globus_gass_transfer.h:174
int globus_gass_transfer_request_get_denial_reason(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:478
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:211
int globus_gass_transfer_request_set_url(globus_gass_transfer_request_t request, char *url)
Definition: globus_gass_transfer_request.c:397
char * globus_gass_transfer_request_get_url(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:272
globus_gass_transfer_request_type_t globus_gass_transfer_request_get_type(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:28
void * globus_gass_transfer_request_get_user_pointer(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:62
char * globus_gass_transfer_request_get_subject(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:547
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_INVALID
Definition: globus_gass_transfer.h:132
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_GET
Definition: globus_gass_transfer.h:134
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_APPEND
Definition: globus_gass_transfer.h:138
@ GLOBUS_GASS_TRANSFER_REQUEST_TYPE_PUT
Definition: globus_gass_transfer.h:136
@ GLOBUS_GASS_TRANSFER_REQUEST_STARTING
Definition: globus_gass_transfer.h:176
@ GLOBUS_GASS_TRANSFER_REQUEST_FAILED
Definition: globus_gass_transfer.h:180
@ GLOBUS_GASS_TRANSFER_REQUEST_REFERRED
Definition: globus_gass_transfer.h:183
@ GLOBUS_GASS_TRANSFER_REQUEST_DENIED
Definition: globus_gass_transfer.h:186
@ GLOBUS_GASS_TRANSFER_REQUEST_INVALID
Definition: globus_gass_transfer.h:175
@ GLOBUS_GASS_TRANSFER_REQUEST_DONE
Definition: globus_gass_transfer.h:188
@ GLOBUS_GASS_TRANSFER_REQUEST_PENDING
Definition: globus_gass_transfer.h:179
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:916
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:618
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:142
globus_object_t * globus_gass_transfer_listenerattr_initialize(globus_object_t *obj, int backlog, unsigned short port)
Definition: globus_gass_transfer_attribute.c:1071
int globus_gass_transfer_requestattr_set_socket_nodelay(globus_gass_transfer_requestattr_t *attr, globus_bool_t nodelay)
Definition: globus_gass_transfer_attribute.c:840
int globus_gass_transfer_requestattr_set_proxy_url(globus_gass_transfer_requestattr_t *attr, char *proxy_url)
Definition: globus_gass_transfer_attribute.c:295
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:544
int globus_gass_transfer_requestattr_set_socket_rcvbuf(globus_gass_transfer_requestattr_t *attr, int rcvbuf)
Definition: globus_gass_transfer_attribute.c:761
int globus_gass_transfer_listenerattr_init(globus_gass_transfer_listenerattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:1121
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:465
int globus_gass_transfer_requestattr_destroy(globus_gass_transfer_requestattr_t *attr)
Definition: globus_gass_transfer_attribute.c:252
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:986
int globus_gass_transfer_requestattr_init(globus_gass_transfer_requestattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:204
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:386
int globus_gass_transfer_requestattr_set_socket_sndbuf(globus_gass_transfer_requestattr_t *attr, int sndbuf)
Definition: globus_gass_transfer_attribute.c:682
int globus_gass_transfer_authorize(globus_gass_transfer_request_t request, globus_size_t total_length)
Definition: globus_gass_transfer_server.c:677
void(* globus_gass_transfer_listen_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:427
int globus_gass_transfer_refer(globus_gass_transfer_request_t request, char **urls, globus_size_t num_urls)
Definition: globus_gass_transfer_server.c:546
void(* globus_gass_transfer_close_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:416
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:153
void * globus_gass_transfer_listener_get_user_pointer(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:416
int globus_gass_transfer_listener_set_user_pointer(globus_gass_transfer_listener_t listener, void *user_pointer)
Definition: globus_gass_transfer_server.c:455
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:54
int globus_gass_transfer_deny(globus_gass_transfer_request_t request, int reason, char *message)
Definition: globus_gass_transfer_server.c:790
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:314
char * globus_gass_transfer_listener_get_base_url(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:493
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:213