lander/include/http_loop.h

34 lines
662 B
C

#ifndef LANDER_HTTP_LOOP
#define LANDER_HTTP_LOOP
#include "event_loop.h"
#include "http_req.h"
#include "trie.h"
/*
* Global context passed to every connection using the same pointer
*/
typedef struct http_loop_gctx {
Trie *trie;
} http_loop_gctx;
http_loop_gctx *http_loop_gctx_init();
/*
* Invidivual context initialized for every connection
*/
typedef struct http_loop_ctx {
http_request req;
http_loop_gctx *g;
} http_loop_ctx;
http_loop_ctx *http_loop_ctx_init(http_loop_gctx *g);
void http_loop_ctx_free(http_loop_ctx *ctx);
bool http_loop_handle_request(event_loop_conn *conn);
event_loop *http_loop_init(http_loop_gctx *gctx);
#endif