61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
//
|
|
// Created by xajhuang on 2022/11/4.
|
|
//
|
|
|
|
#ifndef VCPE_PROJECT_HTTP_SVR_H
|
|
#define VCPE_PROJECT_HTTP_SVR_H
|
|
#ifdef __cplusplus
|
|
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
|
|
}
|
|
#endif
|
|
#endif //VCPE_PROJECT_HTTP_SVR_H
|