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) β€” Make globus_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 that dest_attr comes before dest_url and source_attr comes 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 to GLOBUS_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 the callback_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 to GLOBUS_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 the callback_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 to GLOBUS_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 the callback_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 to GLOBUS_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 to GLOBUS_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 to GLOBUS_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