GLOBUS_GASS_TRANSFER_BYTES_CALLBACK_T(3)
β¨ 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β theuser_argyou 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 thebytesarray.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 thebytesarray 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β thebytesorcallbackparameter wasNULL.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 thebytesarray.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 thebytesarray 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β thebytesorcallbackparameter wasNULL.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. ππΈπ¦
π¦ where this page comes from
- epel 10: globus-gass-transfer-doc 9.5-1.el10_2 Β· Apache-2.0
- fedora 43: globus-gass-transfer-doc 9.5-1.fc43 Β· Apache-2.0
- fedora 44: globus-gass-transfer-doc 9.5-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-gass-transfer-doc 9.5-1 Β· Apache-2.0
- ubuntu stonking: libglobus-gass-transfer-doc 9.5-2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms