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);
Definition: globus_gass_transfer.h:283
Definition: globus_gass_transfer.h:147
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
Definition: globus_gass_transfer.h:195
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_requestattr_set_proxy_url(globus_gass_transfer_requestattr_t *attr, char *proxy_url)
Definition: globus_gass_transfer_attribute.c:310
int globus_gass_transfer_authorize(globus_gass_transfer_request_t request, globus_size_t total_length)
Definition: globus_gass_transfer_server.c:691
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
globus_size_t globus_gass_transfer_referral_get_count(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:45
Definition: globus_gass_transfer.h:267
void * globus_gass_transfer_request_get_user_pointer(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:77
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_referral_destroy(globus_gass_transfer_referral_t *referral)
Definition: globus_gass_transfer_referral.c:119
char * globus_gass_transfer_request_get_denial_message(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:528
Definition: globus_gass_transfer.h:201
int globus_gass_transfer_requestattr_init(globus_gass_transfer_requestattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:219
void(* globus_gass_transfer_listen_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:442
int globus_gass_transfer_request_destroy(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:632
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_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_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
Definition: globus_gass_transfer.h:198
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
Definition: globus_gass_transfer.h:291
int globus_gass_transfer_listenerattr_init(globus_gass_transfer_listenerattr_t *attr, char *url_scheme)
Definition: globus_gass_transfer_attribute.c:1136
globus_gass_transfer_request_type_t
Definition: globus_gass_transfer.h:144
Definition: globus_gass_transfer.h:269
char * globus_gass_transfer_request_get_url(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:287
Definition: globus_gass_transfer.h:275
int globus_gass_transfer_requestattr_destroy(globus_gass_transfer_requestattr_t *attr)
Definition: globus_gass_transfer_attribute.c:267
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:527
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
Definition: globus_gass_transfer.h:285
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
int globus_gass_transfer_request_set_user_pointer(globus_gass_transfer_request_t request, void *user_pointer)
Definition: globus_gass_transfer_request.c:117
void * globus_gass_transfer_listener_get_user_pointer(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:430
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_refer(globus_gass_transfer_request_t request, char **urls, globus_size_t num_urls)
Definition: globus_gass_transfer_server.c:560
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
Definition: globus_gass_transfer.h:271
Definition: globus_gass_transfer.h:261
Definition: globus_gass_transfer.h:259
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
int globus_gass_transfer_listenerattr_set_backlog(globus_gass_transfer_listenerattr_t *attr, int backlog)
Definition: globus_gass_transfer_attribute.c:1190
Definition: globus_gass_transfer.h:203
int globus_gass_transfer_listener_set_user_pointer(globus_gass_transfer_listener_t listener, void *user_pointer)
Definition: globus_gass_transfer_server.c:469
Definition: globus_gass_transfer.h:190
Definition: globus_gass_transfer.h:273
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_requestattr_set_socket_nodelay(globus_gass_transfer_requestattr_t *attr, globus_bool_t nodelay)
Definition: globus_gass_transfer_attribute.c:855
Definition: globus_gass_transfer.h:263
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
Definition: globus_gass_transfer.h:191
Definition: globus_gass_transfer.h:149
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_requestattr_set_socket_rcvbuf(globus_gass_transfer_requestattr_t *attr, int rcvbuf)
Definition: globus_gass_transfer_attribute.c:776
Definition: globus_gass_transfer.h:153
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_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_listenerattr_set_port(globus_gass_transfer_listenerattr_t *attr, unsigned short port)
Definition: globus_gass_transfer_attribute.c:1268
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
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
Definition: globus_gass_transfer.h:287
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
globus_gass_transfer_request_status_t
Definition: globus_gass_transfer.h:188
Definition: globus_gass_transfer.h:277
Definition: globus_gass_transfer.h:265
char * globus_gass_transfer_listener_get_base_url(globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer_server.c:507
Definition: globus_gass_transfer.h:279
char * globus_gass_transfer_request_get_subject(globus_gass_transfer_request_t request)
Definition: globus_gass_transfer_request.c:562
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_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
int globus_gass_transfer_deny(globus_gass_transfer_request_t request, int reason, char *message)
Definition: globus_gass_transfer_server.c:804
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_block_size(globus_gass_transfer_requestattr_t *attr, globus_size_t block_size)
Definition: globus_gass_transfer_attribute.c:401
void(* globus_gass_transfer_close_callback_t)(void *callback_arg, globus_gass_transfer_listener_t listener)
Definition: globus_gass_transfer.h:431
int globus_gass_transfer_request_set_url(globus_gass_transfer_request_t request, char *url)
Definition: globus_gass_transfer_request.c:412
Definition: globus_gass_transfer.h:194
Definition: globus_gass_transfer.h:281
Definition: globus_gass_transfer.h:289
Definition: globus_gass_transfer.h:151
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
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_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