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;
331 void *progress_callback_arg;
333 globus_dsi_rest_callbacks_t;
362 const globus_dsi_rest_callbacks_t *callbacks);
388 char **complete_urip);
413 globus_result_t result);
519 globus_gfs_operation_t
op;
567 struct globus_dsi_rest_write_part_s
578 void *data_write_callback_arg;
641 struct globus_dsi_rest_read_part_s
653 void *response_callback_arg;
663 void *data_read_callback_arg;
785 extern globus_module_descriptor_t globus_i_dsi_rest_module;
789 GLOBUS_DSI_REST_ERROR_PARAMETER = 1,
790 GLOBUS_DSI_REST_ERROR_MEMORY,
791 GLOBUS_DSI_REST_ERROR_PARSE,
792 GLOBUS_DSI_REST_ERROR_CURL,
793 GLOBUS_DSI_REST_ERROR_JSON,
794 GLOBUS_DSI_REST_ERROR_TIME_OUT,
795 GLOBUS_DSI_REST_ERROR_THREAD_FAIL,
796 GLOBUS_DSI_REST_ERROR_UNEXPECTED_DATA,
799 #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:99
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:517
globus_off_t length
Definition: globus_dsi_rest.h:527
globus_off_t offset
Definition: globus_dsi_rest.h:521
globus_gfs_operation_t op
Definition: globus_dsi_rest.h:519
bool eof
Definition: globus_dsi_rest.h:532
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:637
size_t num_parts
Definition: globus_dsi_rest.h:639
Response specialization response_callback_arg.
Definition: globus_dsi_rest.h:740
globus_dsi_rest_key_array_t desired_headers
Definition: globus_dsi_rest.h:746
off_t request_bytes_uploaded
Definition: globus_dsi_rest.h:752
int response_code
Definition: globus_dsi_rest.h:742
off_t response_bytes_downloaded
Definition: globus_dsi_rest.h:758
Single-block write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:429
void * block_data
Definition: globus_dsi_rest.h:431
size_t block_len
Definition: globus_dsi_rest.h:433
Multiple-block write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:475
Multipart write specialization data_write_callback_arg.
Definition: globus_dsi_rest.h:563
size_t num_parts
Definition: globus_dsi_rest.h:565