GLOBUS_GASS_TRANSFER_DATA(3)

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

✨ NAME ✨

globus_gass_transfer_data β€” Sending and Receiving Data πŸ’–

and yeah, that's genuinely the whole name entry: this is the Sending and Receiving Data page, from the Library Functions Manual, and it's your bestie for shoving bytes back and forth through globus_gass_transfer. no cap. 🌸


πŸŽ€ SYNOPSIS πŸŽ€

okay so here's literally everything this page declares, bestie:

Typedefs

typedef 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)

Functions

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)
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)

πŸ¦‹ Detailed Description πŸ¦‹

Sending and receiving data. That's it. That's the vibe. That's the entire page's reason for existing. πŸ’…


πŸ’œ Typedef Documentation πŸ’œ

globus_gass_transfer_bytes_callback_t 🫢

typedef 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)

This is the byte send or receive callback function β€” the little main character that gets summoned once your bytes have actually moved. ✨

Parameters

  • arg β€” the user_arg you handed to the function that registered this callback. It's yours, use it for literally any purpose you want. πŸŽ€
  • request β€” the request handle that's associated with this byte array.
  • bytes β€” the byte array that was sent or received.
  • length β€” the length of the data that was sent or received.
  • last_data β€” boolean flag: is this the final byte array for this request, or not? πŸ‘‘

See also

globus_gass_transfer_send_bytes(), globus_gass_transfer_receive_bytes()


πŸ’– Function Documentation πŸ’–

globus_gass_transfer_receive_bytes() 🌈

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)

Receive a byte array associated with a request handle. πŸ“₯

This function receives a block of data from a server or client as part of the processing for a request. And the way that multiple data blocks can be registered with the GASS transfer library at once? iconic. stack 'em. πŸ”₯

When you're processing a server request, this function may only be used in conjunction with "put" or "append" requests. You must call globus_gass_transfer_authorize() before you call this function. no skipping, bestie. πŸ™ˆ

When you're processing a client request, this function may only be used in conjunction with "get" requests. And this function may not be called before either the callback function has been invoked, or the blocking globus_gass_tranfser_put() or globus_gass_transfer_append() function has returned. that's the rule. βœ‹

Parameters

  • request β€” the request handle this block of bytes is associated with.
  • bytes β€” a user-supplied buffer holding the data associated with the request.
  • max_length β€” the length of the bytes array.
  • wait_for_length β€” the minimum amount of data to wait for before the callback function gets invoked. A partial byte array of at least this amount will be returned in the callback β€” unless end-of-file is reached before that amount. 🫠
  • callback β€” the function to call once the bytes array has been received.
  • user_arg β€” the argument to pass to the callback function.

Return values

  • GLOBUS_SUCCESS β€” the bytes array was successfully registered with the GASS transfer library, and the callback function will be invoked once it has been received. πŸŽ‰
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” the bytes or callback parameter was NULL.
  • GLOBUS_GASS_TRANSFER_ERROR_INVALID_USER β€” the request was invalid, or it's not one on which bytes can be sent.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_INITIALIZED β€” the callback to a non-blocking file request hasn't been invoked yet, a blocking file request hasn't returned, or the request hasn't been authorized yet.
  • GLOBUS_GASS_TRANSFER_ERROR_REQUEST_FAILED β€” the request has failed, by either the client, server, or protocol module implementation. πŸ’€
  • GLOBUS_GASS_TRANSFER_ERROR_DONE β€” the request has already been completed.

globus_gass_transfer_send_bytes() ⭐

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)

Send a byte array associated with a request handle. πŸ“€

This function sends a block of data to a server or client as part of the processing for a request. And again β€” multiple data blocks may be registered with the GASS transfer library at once. obsessed. πŸ’…

When you're processing a server request, this function may only be used in conjunction with "get" requests. The user must call globus_gass_transfer_authorize() before calling this function. periodt. πŸ‘‘

When you're processing a client request, this function may only be used in conjunction with "put" or "append" requests. This function may not be called before either the callback function has been invoked, or the blocking globus_gass_tranfser_put() or globus_gass_transfer_append() function has returned. 🫑

Parameters

  • request β€” the request handle this block of bytes is associated with.
  • bytes β€” a user-supplied buffer holding the data associated with the request.
  • send_length β€” the length of the bytes array.
  • last_data β€” a flag saying whether this is the final block of data for the request. If it's true, then the callback function gets delayed until the server acknowledges that the file has been completely received. so don't be surprised when it takes a sec. ⏳
  • callback β€” the function to call once the bytes array has been sent.
  • user_arg β€” the argument to pass to the callback function.

Return values

  • GLOBUS_SUCCESS β€” the bytes array was successfully registered with the GASS transfer library, and the callback function will be invoked once it has been sent. πŸŽ‰
  • GLOBUS_GASS_TRANSFER_ERROR_NULL_POINTER β€” the bytes or callback parameter was NULL.
  • GLOBUS_GASS_TRANSFER_ERROR_INVALID_USER β€” the request was invalid, or it's not one on which bytes can be sent.
  • GLOBUS_GASS_TRANSFER_ERROR_NOT_INITIALIZED β€” the callback to a non-blocking file request hasn't been invoked yet, a blocking file request hasn't returned, or the request hasn't been authorized yet.
  • GLOBUS_GASS_TRANSFER_ERROR_REQUEST_FAILED β€” the request has failed, by either the client, server, or protocol module implementation. πŸ’€
  • GLOBUS_GASS_TRANSFER_ERROR_DONE β€” the request has already been completed.

🌟 Author 🌟

This page was generated automatically by Doxygen for globus_gass_transfer, straight from the source code. a robot wrote my homework and honestly? it ate. πŸ€–βœ¨


and that's a wrap, bestie 🫢 this whole thing is globus_gass_transfer, Version 9.5, and the page is globus_gas...ansfer_data(3). go forth and move those bytes. πŸ’–πŸŒΈπŸ¦‹