#ifndef __HTTP_REQUEST_PARSER_H__ #define __HTTP_REQUEST_PARSER_H__ #include "class.h" #include "http/request.h" #include "http/message/queue.h" #include "cbuf.h" #ifndef TRUE #define TRUE ((void *)1) #endif #ifndef FALSE #define FALSE ((void *)0) #endif typedef enum e_HttpRequestState { HTTP_REQUEST_GARBAGE=0, HTTP_REQUEST_START, HTTP_REQUEST_REQUEST_LINE_DONE, HTTP_REQUEST_HEADERS_DONE, HTTP_REQUEST_DONE } HttpRequestState; CLASS(HttpRequestParser) { Cbuf buffer; void * ourLock; char * incomplete; size_t isize; HttpMessageQueue request_queue; HttpRequest cur_request; HttpRequestState state; }; ssize_t httpRequestParserRead(HttpRequestParser, int); ssize_t httpRequestParserParse(HttpRequestParser, int); void httpRequestParserGetBody(HttpRequestParser); ssize_t httpRequestParserGetRequestLine(HttpRequestParser, char *); ssize_t httpRequestParserGetHeader(HttpRequestParser, char *); void httpRequestParserGetBody(HttpRequestParser); #endif /* __HTTP_REQUEST_PARSER_H__ */ // vim: set ts=4 sw=4: