adamc@853: #ifndef REQUEST_H
adamc@853: #define REQUEST_H
adamc@853: 
adamc@853: #include <sys/types.h>
adamc@853: 
adamc@853: #include "types.h"
adamc@853: 
adamc@853: typedef struct uw_rc *uw_request_context;
adamc@853: 
adamc@1094: void uw_request_init(uw_app *app, void *logger_data, uw_logger log_error, uw_logger log_debug);
adamc@853: void uw_sign(const char *in, char *out);
adamc@853: 
adamc@853: uw_request_context uw_new_request_context(void);
adamc@853: void uw_free_request_context(uw_request_context);
adamc@853: 
adamc@854: request_result uw_request(uw_request_context, uw_context,
adamc@854:                           char *method, char *path, char *query_string,
adamc@854:                           char *body, size_t body_len,
adamc@856:                           void (*on_success)(uw_context), void (*on_failure)(uw_context),
adamc@856:                           void *logger_data, uw_logger log_error, uw_logger log_debug,
adamc@863:                           int sock,
adamc@863:                           int (*send)(int sockfd, const void *buf, ssize_t len),
adamc@863:                           int (*close)(int fd));
adamc@853: 
adamc@1094: uw_context uw_request_new_context(uw_app*, void *logger_data, uw_logger log_error, uw_logger log_debug);
adamc@856: 
adamc@856: typedef struct {
adamc@1094:   uw_app *app;
adamc@856:   void *logger_data;
adamc@856:   uw_logger log_error, log_debug;
adamc@856: } loggers;
adamc@853: 
adamc@853: void *client_pruner(void *data);
adamc@853: 
adamc@853: #endif