GLOBUS_GASS_TRANSFER_APPEND(3)

πŸ“¦
version 9.5 Β· 6 versions
, in epel 10, fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

globus_gass_transfer_client β€” Client-Initiated Operations

Like, the whole GASS Transfer Client Operations vibe, bestie πŸ’…


✨ SYNOPSIS ✨

πŸ› οΈ Functions πŸ› οΈ

Here's the whole lineup, no cap β€” every single one, exactly as it lives in the header:

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)
int globus_gass_transfer_get (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url)
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)
int globus_gass_transfer_put (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)
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)
int globus_gass_transfer_append (globus_gass_transfer_request_t *request, globus_gass_transfer_requestattr_t *attr, char *url, globus_size_t length)

πŸ“– Detailed Description πŸ“–

Okay so GASS Transfer Client Operations. That's the whole thing. That's the assignment. πŸ’–

πŸ¦‹ Client-Initiated Operations πŸ¦‹

So like, one mode of using the GASS Transfer API is to just... initiate file transfers yourself. Main character energy, honestly. πŸ‘‘

The operations the GASS Transfer API supports are file get, put, and append. Three icons, no notes. ✨

These operations are provided for HTTP and HTTPS file servers. And because the devs were lowkey geniuses, the protocol module interface lets support for additional protocols get added easily β€” plug and play, fr fr. πŸ”ŒπŸŒˆ

The GASS transfer library gives you both blocking and non-blocking versions of all its client functions. The duality. Obsessed. 🫢

Now listen, bestie, this part matters: when a blocking function completes, or the non-blocking function's callback gets called, you should check the request's status to find out whether the transfer was completed successfully, denied, or referred. Don't just assume it worked β€” do your vibe check. πŸ‘€

more coming, don't go anywhere πŸŽ€

πŸ’… FUNCTION DOCUMENTATION πŸ’…

✨ globus_gass_transfer_append β€” Blocking file append

int globus_gass_transfer_append (globus_gass_transfer_request_t * request,
    globus_gass_transfer_requestattr_t * attr, char * url, globus_size_t
    length)

okay bestie, this one starts a brand-new "append" request for the file that url names. If the user is authorized to do so, the entire file gets transferred to the server. And the way this works? It blocks 🫢 β€” like, it just sits there until the GASS library has figured out whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server has denied the request.

The second it returns, the request handle is initialized to refer to the append request's state. slay. πŸ’…

And if the server can't store the file at url, but has an alternative location for the user to store to? Then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. iconic behavior fr.

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” the URL to append to.
  • length β€” the length of the data to append to the url, if known. If you set this to GLOBUS_GASS_LENGTH_UNKNOWN, then the append may fail if the protocol does not support arbitrarily-length files. ⚠️

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the put was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request, attr, or callback was GLOBUS_NULL. The put could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the put.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a append on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_register_append()


✨ globus_gass_transfer_get β€” Blocking file get

int globus_gass_transfer_get (globus_gass_transfer_request_t * request,
    globus_gass_transfer_requestattr_t * attr, char * url)

so bestie, this one kicks off a fresh "get" request for the file named by url. If the file exists and the user is authorized to do so, the entire file gets transferred from the server. And yeah, it blocks β€” it waits until the GASS library knows whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server denied the request. no cap. πŸ’œ

Once it returns, the request handle is initialized to refer to the get request's state. And heads up: this request handle must be destroyed after the user has finished processing the data associated with the callback. don't forget, that's the vibe check. 🫢

If the file doesn't exist at url, but a referral does, then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. cute.

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” URL to get.

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the get was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request or attr was GLOBUS_NULL. The get could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the get.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a get on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_register_get()


✨ globus_gass_transfer_put β€” Blocking file put

int globus_gass_transfer_put (globus_gass_transfer_request_t * request,
    globus_gass_transfer_requestattr_t * attr, char * url, globus_size_t
    length)

okay so this one initiates a new "put" request for the file named by url. If the user is authorized, the entire file gets transferred to the server. It blocks β€” sitting there until the GASS library has determined whether the file may be retrieved by the caller, or may not because it's a referral to another URL or URLs, or the server has denied the request. πŸ’–

When it comes back, the request handle is initialized to refer to the put request's state. ✨

And if the server can't store the file at url but has an alternative location for the user to store to? Then this function returns with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. periodt.

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” URL to put.
  • length β€” the length of the data to put to the url, if known. If this parameter is set to GLOBUS_GASS_LENGTH_UNKNOWN, then the put may fail if the protocol does not support arbitrarily-length files. ⚠️

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the get was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request or attr was GLOBUS_NULL. The get could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the get.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a put on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_register_put()


✨ globus_gass_transfer_register_append β€” Nonblocking file append

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)

okay bestie, this is the nonblocking twin of append β€” it starts a new "append" request for the file named by url. If the user is authorized to do so, the entire file gets transferred to the server. But this one does not block 😌 β€” instead, the user's callback function gets called once the GASS library has determined whether the file may be stored or not.

On return, the request handle is initialized to refer to the append request's state. πŸŽ€

And if the server can't store the file at url but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. slay.

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” URL to append to.
  • length β€” the length of the data to append to the url, if known. If this parameter is set to GLOBUS_GASS_LENGTH_UNKNOWN, then the append may fail if the protocol does not support arbitrarily-length files. ⚠️
  • callback β€” function to call once the URL has been accepted, referred, or denied by the server.
  • user_arg β€” user-supplied argument to the callback function.

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the put was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request, attr, or callback was GLOBUS_NULL. The put could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the put.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a append on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_append()


✨ globus_gass_transfer_register_get β€” Nonblocking file get

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)

so bestie, this one starts a new "get" request for the file named by url. If the file exists and the user is authorized to do so, the entire file gets transferred from the server. And it does not block β€” instead, the user's callback function gets called once the GASS library has determined whether the file can be retrieved or not. πŸ’œ

When it returns, the request handle is initialized to refer to the get request's state. ✨

And if the server can't store the file at url, but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. 🌸

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” URL to get.
  • callback β€” function to call once the URL has been accepted, referred, or denied by the server.
  • user_arg β€” user-supplied argument to the callback function.

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the get was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request, attr, or callback was GLOBUS_NULL. The get could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the get.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a get on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_get()


✨ globus_gass_transfer_register_put β€” Nonblocking file put

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)

okay so this one initiates a new "put" request for the file named by url. If the user is authorized, the entire file gets transferred to the server. And this one does not block β€” instead, the user's callback function gets called once the GASS library has determined whether the file may be stored or not. 🫢

Once it returns, the request handle is initialized to refer to the put request's state. πŸ’…

And if the server can't store the file at url, but has an alternative location for the user to store to? Then the callback function gets called with the request's status set to GLOBUS_GASS_TRANSFER_REQUEST_REFERRED. no cap.

πŸŽ€ Parameters

  • request β€” a pointer to an uninitialized request handle.
  • attr β€” request attributes.
  • url β€” URL to put.
  • length β€” the length of the data to put to the url, if known. If this parameter is set to GLOBUS_GASS_LENGTH_UNKNOWN, then the put may fail if the protocol does not support arbitrarily-length files. ⚠️
  • callback β€” function to call once the URL has been accepted, referred, or denied by the server.
  • user_arg β€” user-supplied argument to the callback function.

πŸ”₯ Return values

  • GLOBUS_SUCCESS β€” the put was successfully initiated.
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” one of request, attr, or callback was GLOBUS_NULL. The put could not be processed.
  • GLOBUS_GASS_TRANSFER_ERROR_INTERNAL_ERROR β€” an internal resource was not available to process the put.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_IMPLEMENTED β€” no protocol handler for doing a put on this URL type is implemented.
  • GLOBUS_GASS_TRANSFER_ERROR_BAD_URL β€” the URL could not be parsed.

πŸ¦‹ See also

globus_gass_transfer_put()

✨ AUTHOR ✨

okay so who wrote this masterpiece? πŸ’…

  • Generated automatically by Doxygen for globus_gass_transfer from the source code.

yeah bestie, no human author credits here β€” Doxygen just did its lil thing and spat this page out straight from the globus_gass_transfer source code. πŸ€–βœ¨ It's giving auto-generated icon behavior, and honestly? It ate. πŸŽ€


and that's a wrap on the whole page, fr fr 🫢 this whole thing lives in globus_gass_transfer, Version 9.5, filed under the manual section globus_gas...sfer_client(3). That's the source and the version, right there, periodt. πŸ’–

no date stamp on this footer, so it's timeless, iykyk 🌸

go forth and transfer those files, main character πŸ¦‹β­πŸ’œ