50 #ifndef GLOBUS_DSI_REST_H
51 #define GLOBUS_DSI_REST_H
58 #include "globus_common.h"
131 void *response_callback_arg,
133 const char *response_status,
169 void *write_callback_arg,
171 size_t buffer_length,
172 size_t *amount_copied);
208 void *read_callback_arg,
210 size_t buffer_length);
231 void *complete_callback_arg,
232 globus_result_t result);
269 void *progress_callback_arg,
272 uint64_t total_written,
273 uint64_t amt_written);
276 struct globus_dsi_rest_callbacks_s
287 void *response_callback_arg;
298 void *complete_callback_arg;
310 void *data_write_callback_arg;
321 void *data_read_callback_arg;
332 void *progress_callback_arg;
334 globus_dsi_rest_callbacks_t;
363 const globus_dsi_rest_callbacks_t *callbacks);
366 globus_dsi_rest_request_peek(
371 const globus_dsi_rest_callbacks_t *callbacks,
373 void *data_peek_callback_arg);
398 char **complete_urip);
423 globus_result_t result);
529 globus_gfs_operation_t
op;
577 struct globus_dsi_rest_write_part_s
588 void *data_write_callback_arg;
651 struct globus_dsi_rest_read_part_s
663 void *response_callback_arg;
673 void *data_read_callback_arg;
795 extern globus_module_descriptor_t globus_i_dsi_rest_module;
799 GLOBUS_DSI_REST_ERROR_PARAMETER = 1,
800 GLOBUS_DSI_REST_ERROR_MEMORY,
801 GLOBUS_DSI_REST_ERROR_PARSE,
802 GLOBUS_DSI_REST_ERROR_CURL,
803 GLOBUS_DSI_REST_ERROR_JSON,
804 GLOBUS_DSI_REST_ERROR_TIME_OUT,
805 GLOBUS_DSI_REST_ERROR_THREAD_FAIL,
806 GLOBUS_DSI_REST_ERROR_UNEXPECTED_DATA,
809 #define GLOBUS_DSI_REST_MODULE (&globus_i_dsi_rest_module)
bool globus_dsi_rest_error_is_retryable(globus_result_t result)
Check if an error is transient.
Definition: error_is_retryable.c:35
globus_result_t globus_dsi_rest_uri_escape(const char *s, char **escaped)
Escape a string.
Definition: uri_escape.c:92
globus_result_t globus_dsi_rest_request(const char *method, const char *uri, const globus_dsi_rest_key_array_t *query_parameters, const globus_dsi_rest_key_array_t *headers, const globus_dsi_rest_callbacks_t *callbacks)
Perform a REST request.
Definition: request.c:279
globus_result_t globus_dsi_rest_uri_add_query(const char *uri, const globus_dsi_rest_key_array_t *query_parameters, char **complete_urip)
Add query parameters to a URI base string.
Definition: uri_add_query.c:27
globus_result_t(* globus_dsi_rest_read_t)(void *read_callback_arg, void *buffer, size_t buffer_length)
Data Read Callback Signature.
Definition: globus_dsi_rest.h:207
globus_result_t(* globus_dsi_rest_write_t)(void *write_callback_arg, void *buffer, size_t buffer_length, size_t *amount_copied)
Data Write Callback Signature.
Definition: globus_dsi_rest.h:168
globus_result_t(* globus_dsi_rest_progress_t)(void *progress_callback_arg, uint64_t total_read, uint64_t amt_read, uint64_t total_written, uint64_t amt_written)
Request Progress Callback Signature.
Definition: globus_dsi_rest.h:268
void(* globus_dsi_rest_complete_t)(void *complete_callback_arg, globus_result_t result)
Request Complete Callback Signature.
Definition: globus_dsi_rest.h:230
globus_result_t(* globus_dsi_rest_response_t)(void *response_callback_arg, int response_code, const char *response_status, const globus_dsi_rest_key_array_t *response_headers)
Response Callback Signature.
Definition: globus_dsi_rest.h:130
globus_dsi_rest_write_t const globus_dsi_rest_write_multipart
Multipart write specialization of globus_dsi_rest_write_t.
Definition: write_multipart.c:264
globus_dsi_rest_read_t const globus_dsi_rest_read_gridftp_op
GridFTP operation read specialization of globus_dsi_rest_read_t.
Definition: read_gridftp_op.c:346
globus_dsi_rest_write_t const globus_dsi_rest_write_blocks
Multiple-block write specialization of the globus_dsi_rest_write_t.
Definition: write_blocks.c:74
globus_dsi_rest_read_t const globus_dsi_rest_read_multipart
Multipart read specialization of globus_dsi_rest_read_t.
Definition: read_multipart.c:264
struct globus_dsi_rest_read_multipart_arg_s globus_dsi_rest_read_multipart_arg_t
Multipart write specialization data_read_callback_arg.
globus_dsi_rest_write_t const globus_dsi_rest_write_block
Single-block write specialization of globus_dsi_rest_write_t.
Definition: write_block.c:59
globus_dsi_rest_response_t const globus_dsi_rest_response
Response parsing specialization of globus_dsi_rest_response_t.
Definition: response.c:72
struct globus_dsi_rest_response_arg_s globus_dsi_rest_response_arg_t
Response specialization response_callback_arg.
struct globus_dsi_rest_gridftp_op_arg_s globus_dsi_rest_gridftp_op_arg_t
GridFTP Operation write specialization data_write_callback_arg.
globus_dsi_rest_progress_t const globus_dsi_rest_progress_idle_timeout
Idle timeout specialization of globus_dsi_rest_progress_t.
Definition: progress_idle_timeout.c:62
struct globus_dsi_rest_write_multipart_arg_s globus_dsi_rest_write_multipart_arg_t
Multipart write specialization data_write_callback_arg.
globus_dsi_rest_write_t const globus_dsi_rest_write_json
JSON write specialization of globus_dsi_rest_write_t.
Definition: write_json.c:47
globus_dsi_rest_write_t const globus_dsi_rest_write_form
POST FORM write specialization of globus_dsi_rest_write_t.
Definition: write_form.c:47
struct globus_dsi_rest_write_block_arg_s globus_dsi_rest_write_block_arg_t
Single-block write specialization data_write_callback_arg.
globus_dsi_rest_write_t const globus_dsi_rest_write_gridftp_op
GridFTP operation write specialization of globus_dsi_rest_write_t.
Definition: write_gridftp_op.c:585
globus_dsi_rest_read_t const globus_dsi_rest_read_json
JSON read specialization of globus_dsi_rest_read_t.
Definition: read_json.c:89
struct globus_dsi_rest_key_array_s globus_dsi_rest_key_array_t
Key-Value Pair Array.
struct globus_dsi_rest_key_value_s globus_dsi_rest_key_value_t
Key-Value Pairs.
GridFTP Operation write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:527
globus_off_t length
Definition: globus_dsi_rest.h:537
globus_off_t offset
Definition: globus_dsi_rest.h:531
globus_gfs_operation_t op
Definition: globus_dsi_rest.h:529
bool eof
Definition: globus_dsi_rest.h:542
Key-Value Pair Array.
Definition: globus_dsi_rest.h:92
globus_dsi_rest_key_value_t * key_value
Definition: globus_dsi_rest.h:96
size_t count
Definition: globus_dsi_rest.h:94
Key-Value Pairs.
Definition: globus_dsi_rest.h:75
const char * value
Definition: globus_dsi_rest.h:79
const char * key
Definition: globus_dsi_rest.h:77
Multipart write specialization data_read_callback_arg.
Definition: globus_dsi_rest.h:647
size_t num_parts
Definition: globus_dsi_rest.h:649
Response specialization response_callback_arg.
Definition: globus_dsi_rest.h:750
globus_dsi_rest_key_array_t desired_headers
Definition: globus_dsi_rest.h:756
off_t request_bytes_uploaded
Definition: globus_dsi_rest.h:762
int response_code
Definition: globus_dsi_rest.h:752
off_t response_bytes_downloaded
Definition: globus_dsi_rest.h:768
Single-block write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:439
void * block_data
Definition: globus_dsi_rest.h:441
size_t block_len
Definition: globus_dsi_rest.h:443
Multiple-block write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:485
Multipart write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:573
size_t num_parts
Definition: globus_dsi_rest.h:575