2 #ifndef GLOBUS_GASS_COPY_H
3 #define GLOBUS_GASS_COPY_H
5 #include <openssl/evp.h>
12 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
41 #include "globus_gass_transfer.h"
42 #include "globus_ftp_client.h"
43 #include "globus_io.h"
80 #define GLOBUS_GASS_COPY_MODULE (&globus_i_gass_copy_module)
83 globus_module_descriptor_t globus_i_gass_copy_module;
85 #define _GASCSL(s) globus_common_i18n_get_string( \
86 GLOBUS_GASS_COPY_MODULE, \
89 #define CKSM_SIZE (EVP_MAX_MD_SIZE * 2 + 1)
91 typedef struct globus_gass_copy_state_s globus_gass_copy_state_t;
93 typedef struct globus_gass_copy_perf_info_s globus_gass_copy_perf_info_t;
130 globus_off_t total_bytes,
131 float instantaneous_throughput,
132 float avg_throughput);
144 globus_object_t * error);
152 GLOBUS_GASS_COPY_STATUS_NONE,
153 GLOBUS_GASS_COPY_STATUS_PENDING,
154 GLOBUS_GASS_COPY_STATUS_INITIAL,
155 GLOBUS_GASS_COPY_STATUS_SOURCE_READY,
156 GLOBUS_GASS_COPY_STATUS_TRANSFER_IN_PROGRESS,
157 GLOBUS_GASS_COPY_STATUS_READ_COMPLETE,
158 GLOBUS_GASS_COPY_STATUS_WRITE_COMPLETE,
159 GLOBUS_GASS_COPY_STATUS_DONE,
160 GLOBUS_GASS_COPY_STATUS_FAILURE,
161 GLOBUS_GASS_COPY_STATUS_CANCEL,
162 GLOBUS_GASS_COPY_STATUS_DONE_SUCCESS,
163 GLOBUS_GASS_COPY_STATUS_DONE_FAILURE,
164 GLOBUS_GASS_COPY_STATUS_DONE_CANCELLED
173 GLOBUS_GASS_COPY_URL_MODE_UNSUPPORTED,
174 GLOBUS_GASS_COPY_URL_MODE_FTP,
175 GLOBUS_GASS_COPY_URL_MODE_GASS,
176 GLOBUS_GASS_COPY_URL_MODE_IO
251 globus_ftp_client_handle_t ftp_handle;
262 globus_off_t partial_end_offset;
263 globus_off_t partial_bytes_remaining;
285 globus_ftp_client_operationattr_t * ftp_attr;
286 globus_io_attr_t * io;
287 globus_gass_transfer_requestattr_t * gass_requestattr;
299 globus_ftp_client_handleattr_t * ftp_attr;
313 globus_gass_copy_handleattr_init(
317 globus_gass_copy_handleattr_destroy(
321 globus_gass_copy_handleattr_set_ftp_attr(
323 globus_ftp_client_handleattr_t * ftp_attr);
342 globus_bool_t no_third_party_transfers);
348 globus_bool_t * no_third_party_transfers);
354 globus_off_t * offset,
355 globus_off_t * end_offset);
362 globus_off_t end_offset);
368 globus_bool_t send_allo);
378 globus_bool_t always_stat);
399 globus_gass_copy_get_ftp_handle(
401 globus_ftp_client_handle_t * ftp_handle);
412 globus_ftp_client_operationattr_t * ftp_attr);
417 globus_io_attr_t * io_attr);
422 globus_gass_transfer_requestattr_t * gass_attr);
440 globus_io_handle_t * dest_handle);
445 globus_io_handle_t * source_handle,
460 void * callback_arg);
467 globus_io_handle_t * dest_handle,
469 void * callback_arg);
474 globus_io_handle_t * source_handle,
478 void * callback_arg);
503 void * cancel_callback_arg);
546 globus_gass_copy_attr_set_tcpbuffer(
548 globus_ftp_control_tcpbuffer_t * tcpbuffer_info);
552 globus_gass_copy_attr_set_parallelism(
554 globus_ftp_control_parallelism_t * parallelism_info);
558 globus_gass_copy_attr_set_striping(
560 globus_ftp_control_striping_t * striping_info);
564 globus_gass_copy_attr_set_authorization(
566 globus_io_authorization_t * authorization_info);
570 globus_gass_copy_attr_set_secure_channel(
572 globus_io_secure_channel_t * secure_channel_info);
580 GLOBUS_GASS_COPY_GLOB_ENTRY_UNKNOWN,
581 GLOBUS_GASS_COPY_GLOB_ENTRY_FILE,
582 GLOBUS_GASS_COPY_GLOB_ENTRY_DIR,
583 GLOBUS_GASS_COPY_GLOB_ENTRY_OTHER
720 globus_gass_copy_cksm(
726 const char * algorithm,
730 globus_gass_copy_cksm_async(
736 const char * algorithm,
739 void * callback_arg);
742 globus_gass_copy_stat(
globus_result_t globus_gass_copy_cache_url_state(globus_gass_copy_handle_t *handle, char *url)
Cache connections to an FTP or GridFTP server.
Definition: globus_gass_copy.c:6058
globus_result_t globus_gass_copy_cancel(globus_gass_copy_handle_t *handle, globus_gass_copy_callback_t cancel_callback, void *cancel_callback_arg)
Cancel a transfer.
Definition: globus_gass_copy.c:6245
globus_result_t globus_gass_copy_register_url_to_url(globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *dest_attr, char *dest_url, globus_gass_copy_attr_t *source_attr, globus_gass_copy_callback_t callback_func, void *callback_arg)
Definition: globus_gass_copy.c:5361
globus_result_t globus_gass_copy_handle_to_url(globus_gass_copy_handle_t *handle, globus_io_handle_t *source_handle, char *dest_url, globus_gass_copy_attr_t *dest_attr)
Blocking transfer from an IO handle to an URL.
Definition: globus_gass_copy.c:5214
globus_result_t globus_gass_copy_url_to_handle(globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, globus_io_handle_t *dest_handle)
Blocking Transfer from an URL to an IO handle.
Definition: globus_gass_copy.c:5082
globus_result_t globus_gass_copy_flush_url_state(globus_gass_copy_handle_t *handle, char *url)
Remove an FTP or GridFTP cached connection.
Definition: globus_gass_copy.c:6128
globus_result_t globus_gass_copy_get_user_pointer(globus_gass_copy_handle_t *handle, void **user_data)
Get the user pointer in a handle.
Definition: globus_gass_copy.c:6217
globus_result_t globus_gass_copy_register_handle_to_url(globus_gass_copy_handle_t *handle, globus_io_handle_t *source_handle, char *dest_url, globus_gass_copy_attr_t *dest_attr, globus_gass_copy_callback_t callback_func, void *callback_arg)
Definition: globus_gass_copy.c:5920
globus_result_t globus_gass_copy_register_url_to_handle(globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, globus_io_handle_t *dest_handle, globus_gass_copy_callback_t callback_func, void *callback_arg)
Nonblocking transfer from an URL to an IO handle.
Definition: globus_gass_copy.c:5760
globus_result_t globus_gass_copy_set_user_pointer(globus_gass_copy_handle_t *handle, void *user_data)
Set the user pointer in a handle.
Definition: globus_gass_copy.c:6189
globus_result_t globus_gass_copy_url_to_url(globus_gass_copy_handle_t *handle, char *source_url, globus_gass_copy_attr_t *source_attr, char *dest_url, globus_gass_copy_attr_t *dest_attr)
Blocking Transfer between URLs.
Definition: globus_gass_copy.c:4947
globus_result_t globus_gass_copy_attr_set_ftp(globus_gass_copy_attr_t *attr, globus_ftp_client_operationattr_t *ftp_attr)
Set the attributes for ftp/gsiftp transfers.
Definition: globus_gass_copy.c:962
struct globus_gass_copy_handleattr_s globus_gass_copy_handleattr_t
Handle Attributes.
globus_gass_copy_url_mode_t
URL Modes.
Definition: globus_gass_copy.h:172
void(* globus_gass_copy_glob_entry_cb_t)(const char *url, const globus_gass_copy_glob_stat_t *info_stat, void *user_arg)
Gass copy glob entry callback.
Definition: globus_gass_copy.h:645
void(* globus_gass_copy_performance_cb_t)(void *user_arg, globus_gass_copy_handle_t *handle, globus_off_t total_bytes, float instantaneous_throughput, float avg_throughput)
Performance Callback.
Definition: globus_gass_copy.h:127
globus_result_t globus_gass_copy_get_status(globus_gass_copy_handle_t *handle, globus_gass_copy_status_t *status)
Get the status code of a transfer.
Definition: globus_gass_copy.c:1641
globus_gass_copy_glob_entry_t
Definition: globus_gass_copy.h:579
globus_result_t globus_gass_copy_get_url_mode(char *url, globus_gass_copy_url_mode_t *mode)
Get URL scheme.
Definition: globus_gass_copy.c:1107
globus_result_t globus_gass_copy_attr_init(globus_gass_copy_attr_t *attr)
Initialize an attribute structure.
Definition: globus_gass_copy.c:913
globus_result_t globus_gass_copy_handle_init(globus_gass_copy_handle_t *handle, globus_gass_copy_handleattr_t *handle_attr)
Initialize a GASS Copy handle.
Definition: globus_gass_copy.c:289
const char * globus_gass_copy_get_status_string(globus_gass_copy_handle_t *handle)
Get the status string of a transfer.
Definition: globus_gass_copy.c:1715
struct globus_gass_copy_attr_s globus_gass_copy_attr_t
Attributes.
globus_result_t globus_gass_copy_set_checksum(globus_gass_copy_handle_t *handle, char *cksm)
Copies the checksum to the handle's checksum parameter.
Definition: globus_gass_copy.c:756
void(* globus_gass_copy_callback_t)(void *callback_arg, globus_gass_copy_handle_t *handle, globus_object_t *error)
Copy Callback.
Definition: globus_gass_copy.h:141
globus_result_t globus_gass_copy_set_partial_offsets(globus_gass_copy_handle_t *handle, globus_off_t offset, globus_off_t end_offset)
Set partial file offsets.
Definition: globus_gass_copy.c:790
globus_result_t globus_gass_copy_set_no_third_party_transfers(globus_gass_copy_handle_t *handle, globus_bool_t no_third_party_transfers)
Enable/Disable third-party transfers.
Definition: globus_gass_copy.c:595
globus_result_t globus_gass_copy_set_checksum_algo(globus_gass_copy_handle_t *handle, char *algo, globus_gass_copy_handle_t *cksm_handle)
Stores the checksum algorithm to use with all checksum operations.
Definition: globus_gass_copy.c:726
globus_result_t globus_gass_copy_handle_destroy(globus_gass_copy_handle_t *handle)
Destroy a GASS Copy handle.
Definition: globus_gass_copy.c:368
globus_result_t globus_gass_copy_set_buffer_length(globus_gass_copy_handle_t *handle, int length)
Set the size of the buffer to be used for doing transfers.
Definition: globus_gass_copy.c:512
globus_result_t globus_gass_copy_get_partial_offsets(globus_gass_copy_handle_t *handle, globus_off_t *offset, globus_off_t *end_offset)
Get partial transfer offsets.
Definition: globus_gass_copy.c:836
globus_result_t globus_gass_copy_attr_set_io(globus_gass_copy_attr_t *attr, globus_io_attr_t *io_attr)
Set file transfers attributes.
Definition: globus_gass_copy.c:1011
globus_result_t globus_gass_copy_attr_set_gass(globus_gass_copy_attr_t *attr, globus_gass_transfer_requestattr_t *gass_attr)
Set the http/https attributes.
Definition: globus_gass_copy.c:1060
globus_result_t globus_gass_copy_set_stat_on_expand(globus_gass_copy_handle_t *handle, globus_bool_t always_stat)
Make globus_gass_copy_expand_url() always send stat info.
Definition: globus_gass_copy.c:697
globus_result_t globus_gass_copy_set_allocate(globus_gass_copy_handle_t *handle, globus_bool_t send_allo)
Set allo on or off.
Definition: globus_gass_copy.c:683
globus_result_t globus_gass_copy_get_no_third_party_transfers(globus_gass_copy_handle_t *handle, globus_bool_t *no_third_party_transfers)
Query third-party transfer status.
Definition: globus_gass_copy.c:654
globus_gass_copy_status_t
Status States.
Definition: globus_gass_copy.h:151
globus_result_t globus_gass_copy_get_buffer_length(globus_gass_copy_handle_t *handle, int *length)
Get the size of the transfer buffer.
Definition: globus_gass_copy.c:552
globus_result_t globus_gass_copy_glob_expand_url(globus_gass_copy_handle_t *handle, const char *url, globus_gass_copy_attr_t *attr, globus_gass_copy_glob_entry_cb_t entry_cb, void *user_arg)
Expand globbed url.
Definition: globus_gass_copy_glob.c:118
globus_result_t globus_gass_copy_mkdir(globus_gass_copy_handle_t *handle, char *url, globus_gass_copy_attr_t *attr)
Make directory.
Definition: globus_gass_copy_glob.c:1751
globus_result_t globus_gass_copy_register_performance_cb(globus_gass_copy_handle_t *handle, globus_gass_copy_performance_cb_t callback, void *user_arg)
Register a performance information callback.
Definition: globus_gass_copy.c:1184
Attributes.
Definition: globus_gass_copy.h:284
Glob expanded entry information.
Definition: globus_gass_copy.h:591
int mode
Definition: globus_gass_copy.h:611
globus_off_t size
Definition: globus_gass_copy.h:621
int mdtm
Definition: globus_gass_copy.h:616
globus_gass_copy_glob_entry_t type
Definition: globus_gass_copy.h:594
char * symlink_target
Definition: globus_gass_copy.h:606
char * unique_id
Definition: globus_gass_copy.h:601
Copy Handle.
Definition: globus_gass_copy.h:184
globus_ftp_client_handle_t ftp_handle_2
Definition: globus_gass_copy.h:255
globus_bool_t always_stat_on_expand
Definition: globus_gass_copy.h:273
globus_gass_copy_callback_t user_callback
Definition: globus_gass_copy.h:216
void * callback_arg
Definition: globus_gass_copy.h:221
globus_object_t * err
Definition: globus_gass_copy.h:236
globus_off_t partial_offset
Definition: globus_gass_copy.h:261
globus_bool_t no_third_party_transfers
Definition: globus_gass_copy.h:249
globus_gass_copy_perf_info_t * performance
Definition: globus_gass_copy.h:205
globus_bool_t external_third_party
Definition: globus_gass_copy.h:211
int buffer_length
Definition: globus_gass_copy.h:241
globus_bool_t send_allo
Definition: globus_gass_copy.h:268
globus_gass_copy_state_t * state
Definition: globus_gass_copy.h:194
void * user_pointer
Definition: globus_gass_copy.h:199
globus_gass_copy_status_t status
Definition: globus_gass_copy.h:188
globus_gass_copy_callback_t user_cancel_callback
Definition: globus_gass_copy.h:226
void * cancel_callback_arg
Definition: globus_gass_copy.h:231
Handle Attributes.
Definition: globus_gass_copy.h:298