22 #ifndef GLOBUS_GASS_TRANSFER_H
23 #define GLOBUS_GASS_TRANSFER_H
25 #include "globus_common.h"
31 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
94 extern globus_module_descriptor_t globus_i_gass_transfer_module;
100 #define GLOBUS_GASS_TRANSFER_MODULE (&globus_i_gass_transfer_module)
102 #define _GTSL(s) globus_common_i18n_get_string( \
103 GLOBUS_GASS_TRANSFER_MODULE, \
128 typedef globus_handle_t globus_gass_transfer_listener_t;
133 typedef globus_object_t * globus_gass_transfer_requestattr_t;
137 typedef globus_object_t * globus_gass_transfer_listenerattr_t;
158 GLOBUS_GASS_TRANSFER_FILE_MODE_BINARY,
159 GLOBUS_GASS_TRANSFER_FILE_MODE_TEXT
160 } globus_gass_transfer_file_mode_t;
165 GLOBUS_GASS_TRANSFER_AUTHORIZE_SELF,
166 GLOBUS_GASS_TRANSFER_AUTHORIZE_HOST,
167 GLOBUS_GASS_TRANSFER_AUTHORIZE_SUBJECT,
168 GLOBUS_GASS_TRANSFER_AUTHORIZE_CALLBACK
169 } globus_gass_transfer_authorization_t;
204 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
205 GLOBUS_GASS_TRANSFER_REQUEST_ACCEPTING,
210 GLOBUS_GASS_TRANSFER_REQUEST_ACTING,
211 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_PENDING,
212 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_FAILING,
214 GLOBUS_GASS_TRANSFER_REQUEST_FAILING,
217 GLOBUS_GASS_TRANSFER_REQUEST_USER_FAIL,
219 GLOBUS_GASS_TRANSFER_REQUEST_REFERRING,
221 GLOBUS_GASS_TRANSFER_REQUEST_ACTING_TO_REFERRING,
223 GLOBUS_GASS_TRANSFER_REQUEST_FINISHING,
226 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL1,
228 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL2,
230 GLOBUS_GASS_TRANSFER_REQUEST_SERVER_FAIL3,
232 GLOBUS_GASS_TRANSFER_REQUEST_STARTING2,
233 GLOBUS_GASS_TRANSFER_REQUEST_STARTING3
239 GLOBUS_GASS_TRANSFER_LISTENER_INVALID,
240 GLOBUS_GASS_TRANSFER_LISTENER_STARTING,
241 GLOBUS_GASS_TRANSFER_LISTENER_LISTENING,
243 GLOBUS_GASS_TRANSFER_LISTENER_READY,
244 GLOBUS_GASS_TRANSFER_LISTENER_ACCEPTING,
245 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING1,
247 GLOBUS_GASS_TRANSFER_LISTENER_CLOSING2,
249 GLOBUS_GASS_TRANSFER_LISTENER_CLOSED
250 } globus_gass_transfer_listener_status_t;
303 GLOBUS_GASS_TRANSFER_DEFAULT_BUFFER_LENGTH = 1024
313 #define GLOBUS_GASS_TRANSFER_LENGTH_UNKNOWN 0UL
322 #define GLOBUS_GASS_TRANSFER_TIMESTAMP_UNKNOWN 0UL
325 (* globus_gass_transfer_callback_t)(
327 globus_gass_transfer_request_t request);
351 globus_gass_transfer_request_t * request,
352 globus_gass_transfer_requestattr_t * attr,
354 globus_gass_transfer_callback_t callback,
359 globus_gass_transfer_request_t * request,
360 globus_gass_transfer_requestattr_t * attr,
365 globus_gass_transfer_request_t * request,
366 globus_gass_transfer_requestattr_t * attr,
368 globus_size_t length,
369 globus_gass_transfer_callback_t callback,
374 globus_gass_transfer_request_t * request,
375 globus_gass_transfer_requestattr_t * attr,
377 globus_size_t length);
381 globus_gass_transfer_request_t * request,
382 globus_gass_transfer_requestattr_t * attr,
384 globus_size_t length,
385 globus_gass_transfer_callback_t callback,
390 globus_gass_transfer_request_t * request,
391 globus_gass_transfer_requestattr_t * attr,
393 globus_size_t length);
433 globus_gass_transfer_listener_t listener);
444 globus_gass_transfer_listener_t listener);
448 globus_gass_transfer_listener_t * listener,
449 globus_gass_transfer_listenerattr_t * attr,
454 globus_gass_transfer_listener_t listener,
460 globus_gass_transfer_listener_t listener,
466 globus_gass_transfer_request_t * request,
467 globus_gass_transfer_requestattr_t * attr,
468 globus_gass_transfer_listener_t listener,
469 globus_gass_transfer_callback_t callback,
474 globus_gass_transfer_request_t request,
476 globus_size_t num_urls);
480 globus_gass_transfer_request_t request,
481 globus_size_t total_length);
485 globus_gass_transfer_request_t request,
491 globus_gass_transfer_listener_t listener);
495 globus_gass_transfer_listener_t listener);
499 globus_gass_transfer_listener_t listener,
500 void * user_pointer);
529 globus_gass_transfer_request_t request,
530 globus_byte_t * bytes,
531 globus_size_t length,
532 globus_bool_t last_data);
536 globus_gass_transfer_request_t request,
537 globus_byte_t * bytes,
538 globus_size_t send_length,
539 globus_bool_t last_data,
545 globus_gass_transfer_request_t request,
546 globus_byte_t * bytes,
547 globus_size_t max_length,
548 globus_size_t wait_for_length,
553 globus_gass_transfer_fail(
554 globus_gass_transfer_request_t request,
555 globus_gass_transfer_callback_t callback,
579 } globus_gass_transfer_referral_t;
584 globus_gass_transfer_referral_t * referral);
588 globus_gass_transfer_referral_t * referral,
589 globus_size_t index);
593 globus_gass_transfer_referral_t * referral);
628 globus_gass_transfer_request_t request);
632 globus_gass_transfer_request_t request);
636 globus_gass_transfer_request_t request);
639 globus_gass_transfer_request_set_subject(
640 globus_gass_transfer_request_t request,
645 globus_gass_transfer_request_t request,
646 globus_gass_transfer_referral_t * referral);
650 globus_gass_transfer_request_t request);
654 globus_gass_transfer_request_t request,
659 globus_gass_transfer_request_t request);
663 globus_gass_transfer_request_t request);
667 globus_gass_transfer_request_t request);
671 globus_gass_transfer_request_t request);
675 globus_gass_transfer_request_t request,
676 void * user_pointer);
680 globus_gass_transfer_request_t request);
684 globus_gass_transfer_request_t request,
699 globus_gass_transfer_requestattr_t * attr,
704 globus_gass_transfer_requestattr_t * attr);
708 globus_gass_transfer_listenerattr_t * attr,
712 globus_gass_transfer_listenerattr_destroy(
713 globus_gass_transfer_listenerattr_t * attr);
718 globus_gass_transfer_requestattr_t * attr,
722 globus_gass_transfer_requestattr_get_proxy_url(
723 globus_gass_transfer_requestattr_t * attr,
728 globus_gass_transfer_requestattr_t * attr,
729 globus_size_t block_size);
732 globus_gass_transfer_requestattr_get_block_size(
733 globus_gass_transfer_requestattr_t * attr,
734 globus_size_t * block_size);
738 globus_gass_transfer_requestattr_t * attr,
739 globus_gass_transfer_file_mode_t file_mode);
742 globus_gass_transfer_requestattr_get_file_mode(
743 globus_gass_transfer_requestattr_t * attr,
744 globus_gass_transfer_file_mode_t * file_mode);
748 globus_gass_transfer_requestattr_t * attr,
749 globus_bool_t connection_reuse);
752 globus_gass_transfer_requestattr_get_connection_reuse(
753 globus_gass_transfer_requestattr_t * attr,
754 globus_bool_t * connection_reuse);
759 globus_gass_transfer_requestattr_t * attr,
763 globus_gass_transfer_requestattr_get_socket_sndbuf(
764 globus_gass_transfer_requestattr_t * attr,
769 globus_gass_transfer_requestattr_t * attr,
773 globus_gass_transfer_requestattr_get_socket_rcvbuf(
774 globus_gass_transfer_requestattr_t * attr,
779 globus_gass_transfer_requestattr_t * attr,
780 globus_bool_t nodelay);
783 globus_gass_transfer_requestattr_get_socket_nodelay(
784 globus_gass_transfer_requestattr_t * attr,
785 globus_bool_t * nodelay);
790 globus_gass_transfer_requestattr_t * attr,
791 globus_gass_transfer_authorization_t mode,
795 globus_gass_transfer_secure_requestattr_get_authorization(
796 globus_gass_transfer_requestattr_t * attr,
797 globus_gass_transfer_authorization_t * mode,
808 globus_gass_transfer_listenerattr_t * attr,
812 globus_gass_transfer_listenerattr_get_backlog(
813 globus_gass_transfer_listenerattr_t * attr,
818 globus_gass_transfer_listenerattr_t * attr,
819 unsigned short port);
822 globus_gass_transfer_listenerattr_get_port(
823 globus_gass_transfer_listenerattr_t * attr,
824 unsigned short * port);
831 extern const globus_object_type_t
832 GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION;
834 #define GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR \
835 (&GLOBUS_GASS_OBJECT_TYPE_REQUESTATTR_DEFINITION)
839 globus_object_t * obj,
841 globus_size_t block_size,
842 globus_gass_transfer_file_mode_t file_mode,
843 globus_bool_t connection_reuse);
845 extern const globus_object_type_t
846 GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION;
848 #define GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR \
849 (&GLOBUS_GASS_OBJECT_TYPE_SOCKET_REQUESTATTR_DEFINITION)
853 globus_object_t * obj,
855 globus_size_t block_size,
856 globus_gass_transfer_file_mode_t file_mode,
857 globus_bool_t connection_reuse,
860 globus_bool_t nodelay);
862 extern const globus_object_type_t
863 GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION;
865 #define GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR \
866 (&GLOBUS_GASS_OBJECT_TYPE_SECURE_REQUESTATTR_DEFINITION)
870 globus_object_t * obj,
872 globus_size_t block_size,
873 globus_gass_transfer_file_mode_t file_mode,
874 globus_bool_t connection_reuse,
877 globus_bool_t nodelay,
878 globus_gass_transfer_authorization_t authorization,
882 extern const globus_object_type_t
883 GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION;
885 #define GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR \
886 (&GLOBUS_GASS_OBJECT_TYPE_LISTENERATTR_DEFINITION)
890 globus_object_t * obj,
892 unsigned short port);