From e1b19f4463964f9d2842b80692915e801c8dd03a Mon Sep 17 00:00:00 2001 From: huangxin Date: Tue, 21 Feb 2023 15:18:25 +0800 Subject: [PATCH] =?UTF-8?q?OCT=201.=20=E5=A2=9E=E5=8A=A0=20http=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=9B=B8=E5=85=B3=E7=BB=93=E6=9E=84=E5=AE=9A?= =?UTF-8?q?=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- srcs/libs/include/http_svr.h | 44 +++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/srcs/libs/include/http_svr.h b/srcs/libs/include/http_svr.h index 52a6044..80bb3cb 100644 --- a/srcs/libs/include/http_svr.h +++ b/srcs/libs/include/http_svr.h @@ -8,9 +8,51 @@ extern "C" { #endif #ifdef HTTPSERVER_ON +#include "mongoose.h" + +#define MAX_URI (1024) + +typedef enum { + PRI_LOWEASE = 0, + PRI_LOW, + PRI_NORMAL, + PRI_HIGH, + PRI_HIGHEST, +} HTTP_ROUTE_PRIORITY; + +#define DEF_HTTP_METHOD(HTTP_METHOD) \ + HTTP_METHOD(GET, "GET") \ + HTTP_METHOD(POST, "POST") \ + HTTP_METHOD(PUT, "PUT") \ + HTTP_METHOD(DELETE, "DELETE") \ + HTTP_METHOD(HEAD, "HEAD") \ + HTTP_METHOD(CONNECT, "CONNECT") \ + HTTP_METHOD(OPTIONS, "OPTIONS") \ + HTTP_METHOD(TRACE, "TRACE") \ + HTTP_METHOD(PATCH, "PATCH") + +#define GENERATE_HTTP_METHOD_ENUM(ENUM, x) ENUM, + +typedef enum { + DEF_HTTP_METHOD(GENERATE_HTTP_METHOD_ENUM) +} HTTP_METHOD; + +typedef struct { + int httpCode; + int errCode; + const char* pRspHeads; + void *pRspData; +} HTTP_RSP_CTX, *PHTTP_RSP_CTX; + +typedef void (*HTTP_REQUEST_CB)(struct mg_http_message *, void *, PHTTP_RSP_CTX); int http_svr_init(); - +int http_svr_uinit(); +int http_add_route(const char *path, + HTTP_METHOD method, + HTTP_ROUTE_PRIORITY priority, + HTTP_REQUEST_CB cb, + void *pUserData); #endif #ifdef __cplusplus }