parameter management WIP.

This commit is contained in:
NADAL Jean-Baptiste
2020-02-19 16:23:33 +01:00
parent 6db405df1f
commit 905d900fff
5 changed files with 147 additions and 186 deletions

View File

@@ -38,11 +38,11 @@
typedef struct restd_server_s restd_server_t;
typedef struct restd_hook_s restd_hook_t;
typedef struct restd_resp_s restd_resp_t;
/**
* User callback(hook) prototype.
*/
typedef int (*restd_call_hook_cb)(short event, void *conn);
typedef int (*restd_callback)(struct evhttp_request *req, void *arg);
typedef void (*restd_userdata_free_cb)(void *conn, void *userdata);
@@ -60,6 +60,13 @@ extern void restd_server_register_hook_on_path(restd_server_t *server, enum evht
extern void restd_http_response(struct evhttp_request *req, int code, const char *contenttype, const char *data);
extern char *restd_http_get_body(struct evhttp_request *req);
extern restd_hook_t *restd_hook_new(void);
extern void restd_hook_free(restd_hook_t *hook);
extern restd_resp_t *restd_resp_new(void);
extern void restd_resp_free(restd_resp_t *response);
/*------------------------------- DEFINES ------------------------------------*/
/*
@@ -107,7 +114,6 @@ struct restd_server_s
struct bufferevent *notify_buffer; /*!< internal notification channel */
restd_call_hook_cb call_hooks;
restd_callback request_handler;
restd_callback error_handler;
};
@@ -121,7 +127,21 @@ struct restd_hook_s
char *path;
restd_callback cb;
void *userdata;
bool has_param;
qlist_t *path_fragments;
char *param_name;
char *action_name;
};
/*
* Response callback parameter.
*/
struct restd_resp_s
{
struct evhttp_request *request;
bool has_parameter;
char *parameter;
char *action;
};
#endif /*_RESTD_H */