globus_connect_gridftp_server  15.91
Data Structures | Typedefs | Variables
Callback Specializations

Data Structures

struct  globus_dsi_rest_write_block_arg_s
 Single-block write specialization data_write_callback_arg. More...
 
struct  globus_dsi_rest_write_blocks_arg_t
 Multiple-block write specialization data_write_callback_arg. More...
 
struct  globus_dsi_rest_gridftp_op_arg_s
 GridFTP Operation write specialization data_write_callback_arg. More...
 
struct  globus_dsi_rest_write_multipart_arg_s
 Multipart write specialization data_write_callback_arg. More...
 
struct  globus_dsi_rest_read_multipart_arg_s
 Multipart write specialization data_read_callback_arg. More...
 
struct  globus_dsi_rest_response_arg_s
 Response specialization response_callback_arg. More...
 

Typedefs

typedef struct globus_dsi_rest_write_block_arg_s globus_dsi_rest_write_block_arg_t
 Single-block write specialization data_write_callback_arg. More...
 
typedef struct globus_dsi_rest_gridftp_op_arg_s globus_dsi_rest_gridftp_op_arg_t
 GridFTP Operation write specialization data_write_callback_arg. More...
 
typedef struct globus_dsi_rest_write_multipart_arg_s globus_dsi_rest_write_multipart_arg_t
 Multipart write specialization data_write_callback_arg. More...
 
typedef struct globus_dsi_rest_read_multipart_arg_s globus_dsi_rest_read_multipart_arg_t
 Multipart write specialization data_read_callback_arg. More...
 
typedef struct globus_dsi_rest_response_arg_s globus_dsi_rest_response_arg_t
 Response specialization response_callback_arg. More...
 

Variables

const globus_dsi_rest_write_t globus_dsi_rest_write_block
 Single-block write specialization of globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_write_t globus_dsi_rest_write_json
 JSON write specialization of globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_write_t globus_dsi_rest_write_blocks
 Multiple-block write specialization of the globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_write_t globus_dsi_rest_write_form
 POST FORM write specialization of globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_write_t globus_dsi_rest_write_gridftp_op
 GridFTP operation write specialization of globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_write_t globus_dsi_rest_write_multipart
 Multipart write specialization of globus_dsi_rest_write_t. More...
 
const globus_dsi_rest_read_t globus_dsi_rest_read_multipart
 Multipart read specialization of globus_dsi_rest_read_t. More...
 
const globus_dsi_rest_read_t globus_dsi_rest_read_json
 JSON read specialization of globus_dsi_rest_read_t. More...
 
const globus_dsi_rest_read_t globus_dsi_rest_read_gridftp_op
 GridFTP operation read specialization of globus_dsi_rest_read_t. More...
 
const globus_dsi_rest_progress_t globus_dsi_rest_progress_idle_timeout
 Idle timeout specialization of globus_dsi_rest_progress_t. More...
 
const globus_dsi_rest_response_t globus_dsi_rest_response
 Response parsing specialization of globus_dsi_rest_response_t. More...
 

Detailed Description

Typedef Documentation

◆ globus_dsi_rest_gridftp_op_arg_t

GridFTP Operation write specialization data_write_callback_arg.

A pointer to a data structure of this type must be be used as the data_write_callback_arg parameter when using the globus_dsi_rest_write_gridftp_op() function as the data_write_callback to globus_dsi_rest_request().

◆ globus_dsi_rest_read_multipart_arg_t

Multipart write specialization data_read_callback_arg.

A pointer to a data structure of this type must be be used as the data_read_callback_arg parameter when using the globus_dsi_rest_read_multipart() function as the data_read_callback to globus_dsi_rest_request().

◆ globus_dsi_rest_response_arg_t

Response specialization response_callback_arg.

A pointer to a data structure of this type must be be used as the response_callback_arg parameter when using the globus_dsi_rest_response function as the response_callback to globus_dsi_rest_request().

◆ globus_dsi_rest_write_block_arg_t

Single-block write specialization data_write_callback_arg.

A pointer to a data structure of this type must be be used as the data_write_callback_arg parameter when using the globus_dsi_rest_write_block() function as the data_write_callback to globus_dsi_rest_request().

◆ globus_dsi_rest_write_multipart_arg_t

Multipart write specialization data_write_callback_arg.

A pointer to a data structure of this type must be be used as the data_write_callback_arg parameter when using the globus_dsi_rest_write_multipart() function as the data_write_callback to globus_dsi_rest_request().

Variable Documentation

◆ globus_dsi_rest_progress_idle_timeout

const globus_dsi_rest_progress_t globus_dsi_rest_progress_idle_timeout

Idle timeout specialization of globus_dsi_rest_progress_t.

This function implements the globus_dsi_rest_progress_t interface and is intended to be used to provide an idle timeout implementation.

The progress_callback_arg used with this function MUST BE a uintptr_t with its value meaning the number of milliseconds without any data read or written that triggers the timeout.

◆ globus_dsi_rest_read_gridftp_op

const globus_dsi_rest_read_t globus_dsi_rest_read_gridftp_op

GridFTP operation read specialization of globus_dsi_rest_read_t.

This function implements the globus_dsi_rest_read_t interface and is intended to be used in the situation when the data to receive from the REST server is to be sent to the data channels associated with a GridFTP DSI operation. This function will call globus_gridftp_server_register_write() and send the resulting data to the GridFTP data channel.

The read_callback_arg used with this function MUST BE a pointer to a globus_dsi_rest_gridftp_op_arg_t.

◆ globus_dsi_rest_read_json

const globus_dsi_rest_read_t globus_dsi_rest_read_json

JSON read specialization of globus_dsi_rest_read_t.

This function implements the globus_dsi_rest_read_t interface and is intended to be used in the situation when the data to receive from the REST server is a json object. The callback will parse the data.

The read_callback_arg passed to this function MUST BE a json ** cast to a void *. This function will cause the request to fail if the Content-Type of the response is not "application/json" or if the content is not parseable as json.

◆ globus_dsi_rest_read_multipart

const globus_dsi_rest_read_t globus_dsi_rest_read_multipart

Multipart read specialization of globus_dsi_rest_read_t.

This function implements the globus_dsi_rest_read_t interface and is intended to be used in the situation when the data to receive from the REST server is a multipart message.

The read_callback_arg passed to this function MUST BE a globus_dsi_rest_read_multipart_arg_t * cast to a void *. This function will cause the request to fail if the Content-Type of the response does not start with "multipart/".

◆ globus_dsi_rest_response

const globus_dsi_rest_response_t globus_dsi_rest_response

Response parsing specialization of globus_dsi_rest_response_t.

This function implements the globus_dsi_rest_response_t interface and is intended to be used to provide the HTTP status value and values of certain headers. This is intended to be used when a application wants to receive the response code and specific header values without having to implement callbacks.

The response_callback_arg used with this function MUST BE a pointer to a globus_dsi_rest_response_arg_t structure, with the desired_headers array initialized with a count and a key_value array containing only the key values initialized to the names of the headers that the application wants filled in.

When this function is used, the response_code will be set to the HTTP response code, and the values in the desired_headers.key_value array will be updated for each of the keys which was present in the HTTP response.

◆ globus_dsi_rest_write_block

const globus_dsi_rest_write_t globus_dsi_rest_write_block

Single-block write specialization of globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation when the data to send to the REST server is contained in a single data array.

The write_callback_arg used with this MUST BE a pointer to a globus_dsi_rest_write_block_arg_t.

◆ globus_dsi_rest_write_blocks

const globus_dsi_rest_write_t globus_dsi_rest_write_blocks

Multiple-block write specialization of the globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation where the data to send to the REST server is contained in multiple data arrays.

The write_callback_arg used with this MUST BE a pointer to a globus_dsi_rest_write_blocks_arg_t.

◆ globus_dsi_rest_write_form

const globus_dsi_rest_write_t globus_dsi_rest_write_form

POST FORM write specialization of globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation when the data to send to the REST server is to be a application/x-www-form-urlencoded post body.

The write_callback_arg used with this function MUST BE a pointer to a globus_dsi_rest_key_array_t.

◆ globus_dsi_rest_write_gridftp_op

const globus_dsi_rest_write_t globus_dsi_rest_write_gridftp_op

GridFTP operation write specialization of globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation when the data to send to the REST server is coming from the data channels associated with a GridFTP DSI operation. This function will call globus_gridftp_server_register_read() and send the resulting data to the REST server.

The write_callback_arg used with this function MUST BE a pointer to a globus_dsi_rest_gridftp_op_arg_t.

◆ globus_dsi_rest_write_json

const globus_dsi_rest_write_t globus_dsi_rest_write_json

JSON write specialization of globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation when the data to send from the REST server is a json object. The callback will serialize the json object and send it. The Content-Type header will be automatically set to application/json when this specialization is used, so it doesn't need to be set in the header explicitly.

The write_callback_arg used with this function MUST BE a json *.

◆ globus_dsi_rest_write_multipart

const globus_dsi_rest_write_t globus_dsi_rest_write_multipart

Multipart write specialization of globus_dsi_rest_write_t.

This function implements the globus_dsi_rest_write_t interface and is intended to be used in the situation when the data to send to the REST server is multipart message.

The write_callback_arg used with this function MUST BE a pointer to a globus_dsi_rest_write_multipart_arg_t.

If the headers for the message contain a Content-Type type that is a multipart type, then the header is scanned for a boundary. If no Content-Type header is included, a multipart/related header is used and a boundary is created internally. If the Content-Type is included and is a non-multipart type, then no boundary is used, and the different parts are concatenated without any boundary.

The part_writer, part_writer_arg, and part_header arrays all contain num_parts elements.

For each part, this function serializes the part_header array as a set of HTTP headers for the message part. The array may be empty, either to include no headers for a part, or because this message is not a multipart/related message.

Then, this function sends the data by calling the part_writer repeatedly, passing the part_writer_arg as normal. When that function returns 0 bytes written or an error, then this function will (if defined) write the mulitpart boundary, and then continue to the next element in the array.

This function may be used to compose any of the other available write specializations into a multipart message.