globus_gass_copy.h(3)
π NAME π
globus_gass_copy.h β the GASS Copy Library, bestie! β¨ (You'll find this one chilling in the Library Functions Manual, iykyk. π«Ά)
πΈ SYNOPSIS πΈ
#include <openssl/evp.h>
#include 'globus_gass_transfer.h'
#include 'globus_ftp_client.h'
#include 'globus_io.h'
Yeah, three of those are in single quotes β that's literally how the page has it, no cap, don't come for me. π
π Data Structures
struct globus_gass_copy_handle_sβ the Copy Handle itself. your main character. πstruct globus_gass_copy_attr_sβ Attributes. the little settings gremlins.struct globus_gass_copy_handleattr_sβ Handle Attributes. settings for the handle specifically, very demure.struct globus_gass_copy_glob_stat_tβ Glob expanded entry information. what you get back after a glob gets expanded. π¦
π Macros
#define GLOBUS_GASS_COPY_MODULE (&globus_i_gass_copy_module)β the Module Descriptor. iconic little pointer, we stan.
π Typedefs
typedef 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)β the Performance Callback. it's the one that slides into your DMs with throughput tea. πtypedef void(* globus_gass_copy_callback_t) (void *callback_arg, globus_gass_copy_handle_t *handle, globus_object_t *error)β the Copy Callback. runs when your copy is done (or when it's giving error energy π).typedef struct globus_gass_copy_attr_s globus_gass_copy_attr_tβ Attributes. yes queen, same thing, shorter name.typedef struct globus_gass_copy_handleattr_s globus_gass_copy_handleattr_tβ Handle Attributes. again but for the handle, periodt.typedef void(* globus_gass_copy_glob_entry_cb_t) (const char *url, const globus_gass_copy_glob_stat_t *info_stat, void *user_arg)β the Gass copy glob entry callback. every expanded entry gets its own moment. β¨
π Enumerations
enum globus_gass_copy_status_tβ Status States. the vibe check of your transfer. πenum globus_gass_copy_url_mode_tβ URL Modes. so many modes, so little time.enum globus_gass_copy_glob_entry_tβ okay so the page literally gives this one no description at all π so I'm not gonna invent one, that would be messy of me.
π Functions
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. this is the birth of your handle, honestly her origin story. πglobus_result_t globus_gass_copy_handle_destroy(globus_gass_copy_handle_t *handle)β Destroy a GASS Copy handle. yes, we're ending her, respectfully. π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. bigger buffer, bigger energy. π₯globus_result_t globus_gass_copy_get_buffer_length(globus_gass_copy_handle_t *handle, int *length)β Get the size of the transfer buffer. asks the buffer how big it's feeling today.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. flip the switch either way, no gatekeeping.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. you're just checking bestie, not judging.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. for when you only did part of the thing and you need the receipts.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. tell it exactly where your partial era starts and ends. πglobus_result_t globus_gass_copy_set_allocate(globus_gass_copy_handle_t *handle, globus_bool_t send_allo)β Set allo on or off. allo as in allocate, not as in hello, keep up. πglobus_result_t globus_gass_copy_set_stat_on_expand(globus_gass_copy_handle_t *handle, globus_bool_t always_stat)β Makeglobus_gass_copy_expand_url()always send stat info. yes, every single time, no skipping. π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. one algo to rule all the checksumming, fr fr.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. just tucking the checksum into the handle's little pocket. πglobus_result_t globus_gass_copy_get_url_mode(char *url, globus_gass_copy_url_mode_t *mode)β Get URL scheme. what's the scheme, bestie, what's the vibe.globus_result_t globus_gass_copy_attr_init(globus_gass_copy_attr_t *attr)β Initialize an attribute structure. gotta start her somewhere, glow-up pending. β¨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. the ftp/gsiftp corner of the attribute universe. π¦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. file transfer settings, get into it.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. http/https girlies, this one's for you. π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. url to url, she blocks until she's done, main character energy.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. url in, io handle out, blocking the whole time.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. the reverse, still blocking, still slaying.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)β okay so real talk, the original page gives this one no one-liner description π, and yes I noticed thatdest_attrcomes beforedest_urlandsource_attrcomes after them β that's exactly how it's written, I'm not touching it, look at the signature yourself bestie. π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. doesn't block, just registers and goes about her day. π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)β no description on the original page for this one either π, so I'm giving you the signature and absolutely nothing invented. periodt.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. the vibe check in code form.const char * globus_gass_copy_get_status_string(globus_gass_copy_handle_t *handle)β Get the status string of a transfer. same tea but as a string, cause words hit different.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. it's not ghosting, it's a cancel, and it's valid. π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. save that connection for later, she's coming back. πglobus_result_t globus_gass_copy_flush_url_state(globus_gass_copy_handle_t *handle, char *url)β Remove an FTP or GridFTP cached connection. okay we're clearing the cache, moving on, growth. π¦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. drop your user data in there, it lives there now.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. get your user data back out. she kept it safe. π«Ά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. plug in the throughput gossip feed. π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. take that glob and let it blossom, one entry at a time. πΈglobus_result_t globus_gass_copy_mkdir(globus_gass_copy_handle_t *handle, char *url, globus_gass_copy_attr_t *attr)β Make directory</happy>**. create the folder, you're the folder CEO now. π
π Detailed Description π
GASS Copy Library. that's the whole detailed description, bestie β short, sweet, and it knows exactly what it is. π
β and that's where part 1 wraps β more of this page is incoming, so don't go anywhere! π
π FUNCTION DOCUMENTATION π
okay bestie, this is the part where we meet all the actual functions β the blocking ones (they wait around like a loyal bestie π«Ά) and the nonblocking ones (they dip immediately and text you later when they're done πβ¨). Let's go, one icon at a time.
πΈ globus_gass_copy_cache_url_state πΈ
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. This one explicitly caches the connection to the URL's server β and like, that's the whole point: once an URL is cached, the connection to that URL's server will not be closed after a file transfer completes. It just stays there, chilling, ready for round two. π
β¨ Parameters
handleβ the handle that will contain a cached connection to the URL server.urlβ the URL of the FTP or GSIFTP server you wanna cache.
π Returns
This function returns GLOBUS_SUCCESS if everything went off without a hitch, or a globus_result_t pointing at the error that happened. Not me manifesting success for you though β¨
π¦ globus_gass_copy_flush_url_state π¦
globus_result_t globus_gass_copy_flush_url_state (globus_gass_copy_handle_t
* handle, char * url)
Remove an FTP or GridFTP cached connection. Yep β this is the opposite vibe of the last one: it explicitly removes a cached connection to an FTP or GSIFTP server. And lowkey important: if an idle connection to an FTP server exists, it will be closed. Say bye bye ππ
β¨ Parameters
handleβ the handle that contains a cached connection to the URL server.urlβ the URL of the FTP or GSIFTP server to remove.
π Returns
GLOBUS_SUCCESS if it worked, or a globus_result_t describing whatever error occurred. Fr fr.
π§ globus_gass_copy_handle_to_url π§
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. It does the thing and it waits until it's done β main character energy, no shortcuts. π
β¨ Parameters
handleβ the handle to perform the copy operation.source_handleβ transfer data from this IO handle.dest_urlβ transfer data to this URL.dest_attrβ attributes describing how the transfer to the destination should be done.
π Returns
This function returns GLOBUS_SUCCESS if the transfer completed successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed. (Yes bestie, that means no transfer for you π)GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_url_to_url()globus_gass_copy_url_to_handle()
π globus_gass_copy_register_handle_to_url π
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)
Nonblocking Transfer From an IO handle to an URL. π
This function initiates a transfer from an IO handle to the destination URL, then returns immediately. Like, it does not wait around, it has places to be. π¨
When the transfer is completed β or if the transfer is aborted β callback_func will be invoked with the final status of the transfer. So it will text you back, promise. π«Ά
β¨ Parameters
handleβ the handle to perform the copy operation.source_handleβ transfer data from this IO handle.dest_urlβ transfer data to this URL.dest_attrβ attributes describing how the transfer to the destination should be done.callback_funcβ callback to be invoked once the transfer is completed.callback_argβ argument to be passed to thecallback_func.
π Returns
This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed.GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_register_url_to_url()globus_gass_copy_register_url_to_handle()
π globus_gass_copy_register_url_to_handle π
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. This one initiates a transfer from the source URL to an IO handle, then returns immediately. Literally instant. β‘
When the transfer is completed or if the transfer is aborted, callback_func will be invoked with the final status of the transfer.
β¨ Parameters
handleβ the handle to perform the copy operation.source_urlβ transfer data from this URL.source_attrβ attributes describing how the transfer from the source should be done.dest_handleβ transfer data to this IO handle.callback_funcβ callback to be invoked once the transfer is completed.callback_argβ argument to be passed to thecallback_func.
π Returns
This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed.GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_register_url_to_url()globus_gass_copy_register_handle_to_url()
π globus_gass_copy_register_url_to_url π
globus_result_t globus_gass_copy_register_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, globus_gass_copy_callback_t
callback_func, void * callback_arg)
Nonblocking Transfer between URLs. The iconic one. π
This function initiates a transfer from the source URL to the destination URL, then returns immediately.
When the transfer is completed or if the transfer is aborted, callback_func will be invoked with the final status of the transfer.
β¨ Parameters
handleβ the handle to perform the copy operation.source_urlβ transfer data from this URL.source_attrβ attributes describing how the transfer from the source should be done.dest_urlβ transfer data to this URL.dest_attrβ attributes describing how the transfer to the destination should be done.callback_funcβ callback to be invoked once the transfer is completed.callback_argβ argument to be passed to thecallback_func.
π Returns
This function returns GLOBUS_SUCCESS if the transfer was initiated successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed.GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_register_url_to_handle()globus_gass_copy_register_handle_to_url()
π globus_gass_copy_url_to_handle π
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. The patient one β waits for the whole thing to finish before it moves. πΈ
β¨ Parameters
handleβ the handle to perform the copy operation.source_urlβ transfer data from this URL.source_attrβ attributes describing how the transfer from the source should be done.dest_handleβ transfer data to this IO handle.
π Returns
This function returns GLOBUS_SUCCESS if the transfer completed successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed.GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_url_to_url()globus_gass_copy_handle_to_url()
β globus_gass_copy_url_to_url β
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. URL to URL, no hands, all vibes β and it waits till it's finished. π₯
β¨ Parameters
handleβ the handle to perform the copy operation.source_urlβ transfer data from this URL.source_attrβ attributes describing how the transfer from the source should be done.dest_urlβ transfer data to this URL.dest_attrβ attributes describing how the transfer to the destination should be done.
π Returns
This function returns GLOBUS_SUCCESS if the transfer completed successfully, or a result pointing to an object of one of the following error types:
π Return values
GLOBUS_GASS_COPY_ERROR_TYPE_NULL_PARAMETERβ the handle was equal toGLOBUS_NULL, so the transfer could not processed.GLOBUS_GASS_COPY_ERROR_TYPE_next_errorβ next error description.
π See also
globus_gass_copy_url_to_handle()globus_gass_copy_handle_to_url()
π AUTHOR π
Generated automatically by Doxygen for globus_gass_copy from the source code. (So like, a robot wrote this, but I'm the one making it cute π
β¨)
aaaand that's the whole page, bestie! π This one's globus_gass_copy.h(3) from globus_gass_copy, Version 10.13 β go forth and transfer some files, you absolute icon. ππ¦π
π¦ where this page comes from
- epel 10: globus-gass-copy-doc 10.13-1.el10_0 Β· Apache-2.0
- fedora 43: globus-gass-copy-doc 10.13-4.fc43 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms