#ifndef RSURL_H
#define RSURL_H
#include <stddef.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct RSURL RSURL;
typedef enum {
RSURLOPT_URL = 1,
RSURLOPT_CUSTOMREQUEST = 2,
RSURLOPT_HEADER = 3,
RSURLOPT_POSTFIELDSSTRING = 4,
RSURLOPT_CONNECTTIMEOUT = 5,
RSURLOPT_TIMEOUT = 6,
RSURLOPT_USERAGENT = 7
} rsurl_option_t;
typedef enum {
RSURLE_OK = 0,
RSURLE_INVALID_HANDLE = 1,
RSURLE_UNKNOWN_OPTION = 2,
RSURLE_INVALID_ARG = 3,
RSURLE_NO_RESPONSE = 4,
RSURLE_NETWORK = 5,
RSURLE_BAD_RESPONSE = 6,
RSURLE_UNSUPPORTED = 7
} rsurl_code_t;
RSURL *rsurl_easy_init(void);
void rsurl_easy_cleanup(RSURL *handle);
rsurl_code_t rsurl_easy_reset(RSURL *handle);
rsurl_code_t rsurl_easy_setopt_str(RSURL *handle, int option,
const char *value);
rsurl_code_t rsurl_easy_setopt_long(RSURL *handle, int option, long value);
rsurl_code_t rsurl_easy_perform(RSURL *handle);
rsurl_code_t rsurl_easy_response_body(const RSURL *handle,
const uint8_t **out_ptr,
size_t *out_len);
long rsurl_easy_response_status(const RSURL *handle);
size_t rsurl_easy_response_header_count(const RSURL *handle);
const char *rsurl_easy_response_header(const RSURL *handle, size_t index);
const char *rsurl_strerror(int code);
const char *rsurl_version(void);
#ifdef __cplusplus
}
#endif
#endif