OpenIO SDS C API
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
oio_sds.h File Reference
#include <stdlib.h>
#include <core/oiourl.h>
Include dependency graph for oio_sds.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  oio_sds_dl_dst_s
 
struct  oio_sds_dl_range_s
 
struct  oio_sds_dl_src_s
 
struct  oio_sds_ul_dst_s
 
struct  oio_sds_ul_src_s
 
struct  oio_sds_list_param_s
 
struct  oio_sds_list_item_s
 
struct  oio_sds_list_listener_s
 
struct  oio_sds_usage_s
 

Macros

#define OIO_SDS_VERSION   20180716
 
#define OIO_SDS_UPLOAD_DST_INIT   {NULL, 0, 0, 0, 0, NULL, NULL, 0, 0, 0}
 
#define OIO_SDS_UL__ERROR   ((size_t)-2)
 
#define OIO_SDS_UL__DONE   ((size_t)-1)
 
#define OIO_SDS_UL__NODATA   ((size_t)0)
 
#define OIO_SDS_UPLOAD_SRC_INIT   {.type=0, .data={ .hook={.cb=NULL, .ctx=NULL, .size=0}}}
 

Typedefs

typedef void(* oio_sds_info_reporter_f )(void *cb_data, enum oio_sds_content_key_e key, const char *value)
 
typedef void(* oio_sds_property_reporter_f )(void *cb_data, const char *key, const char *value)
 
typedef void(* oio_sds_metachunk_reporter_f )(void *cb_data, unsigned int seq, size_t offset, size_t length)
 
typedef int(* oio_sds_dl_hook_f )(void *, const unsigned char *, size_t)
 
typedef size_t(* oio_sds_ul_hook_f )(void *, unsigned char *p, size_t s)
 
typedef void(* on_element_f )(void *ctx, const char *key, const char *value)
 

Enumerations

enum  oio_sds_config_e {
  OIOSDS_CFG_TIMEOUT_PROXY = 1, OIOSDS_CFG_TIMEOUT_RAWX = 2, OIOSDS_CFG_FLAG_SYNCATDOWNLOAD = 3, OIOSDS_CFG_FLAG_ADMIN = 4,
  OIOSDS_CFG_FLAG_NO_SHUFFLE = 5, OIOSDS_CFG_FLAG_CHUNKSIZE = 6
}
 
enum  oio_sds_content_key_e {
  OIO_SDS_CONTENT_ID = 1, OIO_SDS_CONTENT_VERSION = 2, OIO_SDS_CONTENT_HASH = 3, OIO_SDS_CONTENT_SIZE = 4,
  OIO_SDS_CONTENT_CHUNKMETHOD = 5
}
 
enum  oio_sds_dl_dst_type_e { OIO_DL_DST_HOOK_SEQUENTIAL = 1, OIO_DL_DST_BUFFER = 2, OIO_DL_DST_FILE = 3 }
 
enum  oio_sds_ul_src_type_e { OIO_UL_SRC_HOOK_SEQUENTIAL = 1 }
 

Functions

void oio_log_to_syslog (void)
 
void oio_log_to_stderr (void)
 
void oio_log_nothing (void)
 
void oio_log_more (void)
 
unsigned int oio_sds_version (void)
 
void oio_error_free (struct oio_error_s *e)
 
void oio_error_pfree (struct oio_error_s **pe)
 
int oio_error_code (const struct oio_error_s *e)
 
const char * oio_error_message (const struct oio_error_s *e)
 
struct oio_error_s * oio_sds_init (struct oio_sds_s **out, const char *ns)
 
void oio_sds_free (struct oio_sds_s *sds)
 
void oio_sds_pfree (struct oio_sds_s **psds)
 
int oio_sds_configure (struct oio_sds_s *sds, enum oio_sds_config_e what, void *pv, unsigned int vlen)
 
struct oio_error_s * oio_sds_create (struct oio_sds_s *sds, struct oio_url_s *url)
 
struct oio_error_s * oio_sds_delete_container (struct oio_sds_s *sds, struct oio_url_s *url)
 
struct oio_error_s * oio_sds_download (struct oio_sds_s *sds, struct oio_sds_dl_src_s *src, struct oio_sds_dl_dst_s *dst)
 
struct oio_error_s * oio_sds_download_to_file (struct oio_sds_s *sds, struct oio_url_s *u, const char *local)
 
struct oio_error_s * oio_sds_show_content (struct oio_sds_s *sds, struct oio_url_s *u, void *cb_data, oio_sds_info_reporter_f cb_info, oio_sds_metachunk_reporter_f cb_metachunks, oio_sds_property_reporter_f cb_props)
 
struct oio_sds_ul_soio_sds_upload_init (struct oio_sds_s *sds, struct oio_sds_ul_dst_s *dst)
 
struct oio_error_s * oio_sds_upload_prepare (struct oio_sds_ul_s *ul, size_t size)
 
struct oio_error_s * oio_sds_upload_feed (struct oio_sds_ul_s *ul, const unsigned char *buf, size_t len)
 
struct oio_error_s * oio_sds_upload_step (struct oio_sds_ul_s *ul)
 
struct oio_error_s * oio_sds_upload_commit (struct oio_sds_ul_s *ul)
 
struct oio_error_s * oio_sds_upload_abort (struct oio_sds_ul_s *ul)
 
int oio_sds_upload_greedy (struct oio_sds_ul_s *ul)
 
int oio_sds_upload_done (struct oio_sds_ul_s *ul)
 
int oio_sds_upload_needs_ecd (struct oio_sds_ul_s *ul)
 
void oio_sds_upload_clean (struct oio_sds_ul_s *ul)
 
struct oio_error_s * oio_sds_upload (struct oio_sds_s *sds, struct oio_sds_ul_src_s *src, struct oio_sds_ul_dst_s *dst)
 
struct oio_error_s * oio_sds_upload_from_file (struct oio_sds_s *sds, struct oio_sds_ul_dst_s *dst, const char *local, size_t off, size_t len)
 
struct oio_error_s * oio_sds_upload_from_buffer (struct oio_sds_s *sds, struct oio_sds_ul_dst_s *dst, void *base, size_t len)
 
struct oio_error_s * oio_sds_list (struct oio_sds_s *sds, struct oio_sds_list_param_s *param, struct oio_sds_list_listener_s *listener)
 
struct oio_error_s * oio_sds_get_usage (struct oio_sds_s *sds, struct oio_url_s *u, struct oio_sds_usage_s *out)
 
struct oio_error_s * oio_sds_drain (struct oio_sds_s *sds, struct oio_url_s *u)
 
struct oio_error_s * oio_sds_delete (struct oio_sds_s *sds, struct oio_url_s *u)
 
struct oio_error_s * oio_sds_has (struct oio_sds_s *sds, struct oio_url_s *url, int *phas)
 
struct oio_error_s * oio_sds_get_content_properties (struct oio_sds_s *sds, struct oio_url_s *url, on_element_f fct, void *ctx)
 
struct oio_error_s * oio_sds_set_content_properties (struct oio_sds_s *sds, struct oio_url_s *url, const char *const *val)
 
struct oio_error_s * oio_sds_get_container_properties (struct oio_sds_s *sds, struct oio_url_s *url, on_element_f fct, void *ctx)
 
struct oio_error_s * oio_sds_set_container_properties (struct oio_sds_s *sds, struct oio_url_s *url, const char *const *val)
 
struct oio_error_s * oio_sds_truncate (struct oio_sds_s *sds, struct oio_url_s *u, size_t size)
 

Variables

volatile int oio_sds_default_autocreate