xrtHttpServerRouteEventsInit

XRT_API void xrtHttpServerRouteEventsInit( xhttpserverrouteevents* pEvents );

;
返回:XRT_API void xrtHttpServerRouteEventsInit( xhttpserverrouteevents* pEvents );

示例已编译验证

httpserverrouteeventsinit obj;
xrtHttpServerRouteEventsInit(&obj);

xrtHttpServerRouterCreate

XRT_API xhttpserverrouter* xrtHttpServerRouterCreate( const xhttprouterconfig* pConfig );

;
返回:XRT_API xhttpserverrouter* xrtHttpServerRouterCreate( const xhttprouterconfig* pConfig );

示例已编译验证

/* XRT_API xhttpserverrouter* xrtHttpServerRouterCreate( const xhttprouterconfig* pConfig ); */
xhandle* h = xrtHttpServerRouterCreate();

xrtHttpServerRouterRef

增加 Router 引用;冻结后的 Router 可由多个运行中 Server 共享。

xhttpserverrouter* xrtHttpServerRouterRef( xhttpserverrouter* pRouter );
参数说明
xhttpserverrouter* pRouter路由器
返回:增加 Router 引用;冻结后的 Router 可由多个运行中 Server 共享。

示例已编译验证

/* 增加 Router 引用;冻结后的 Router 可由多个运行中 Server 共享。 */
result = xrtHttpServerRouterRef(pRouter);

xrtHttpServerRouterDestroy

释放 Router 引用;空指针是安全的空操作。

void xrtHttpServerRouterDestroy( xhttpserverrouter* pRouter );
参数说明
xhttpserverrouter* pRouter路由器
返回:释放 Router 引用;空指针是安全的空操作。

示例已编译验证

xrtHttpServerRouterDestroy(pRouter);

xrtHttpServerRouteEvents

XRT_API bool xrtHttpServerRouteEvents( xhttpserverrouter* pRouter, xstrview Method, xstrview Pattern, const xhttpserverrouteevents* pEvents );

;
返回:XRT_API bool xrtHttpServerRouteEvents( xhttpserverrouter* pRouter, xstrview Method, xstrview Pattern, const xhttpserverrouteevents* pEvents );

示例已编译验证

/* XRT_API bool xrtHttpServerRouteEvents( xhttpserverrouter* pRouter, xstrview Method, xstrview Pattern, const xhttpserverrouteevents* pEvents ); */
result = xrtHttpServerRouteEvents();

xrtHttpServerRoute

注册只处理完整请求的常用路由。

bool xrtHttpServerRoute( xhttpserverrouter* pRouter, xstrview Method, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview MethodHTTP 方法
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册只处理完整请求的常用路由。

示例已编译验证

/* 注册只处理完整请求的常用路由。 */
result = xrtHttpServerRoute(pRouter, Method, Pattern, pHandler, pData);

xrtHttpServerGet

注册常用 GET 路由;HEAD 自动回退到同一路径的 GET。

bool xrtHttpServerGet( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册常用 GET 路由;HEAD 自动回退到同一路径的 GET。

示例已编译验证

/* 注册常用 GET 路由;HEAD 自动回退到同一路径的 GET。 */
result = xrtHttpServerGet(pRouter, Pattern, pHandler, pData);

xrtHttpServerPost

注册常用 POST 路由。

bool xrtHttpServerPost( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册常用 POST 路由。

示例已编译验证

/* 注册常用 POST 路由。 */
result = xrtHttpServerPost(pRouter, Pattern, pHandler, pData);

xrtHttpServerPut

注册常用 PUT 路由。

bool xrtHttpServerPut( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册常用 PUT 路由。

示例已编译验证

/* 注册常用 PUT 路由。 */
result = xrtHttpServerPut(pRouter, Pattern, pHandler, pData);

xrtHttpServerPatch

注册常用 PATCH 路由。

bool xrtHttpServerPatch( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册常用 PATCH 路由。

示例已编译验证

/* 注册常用 PATCH 路由。 */
result = xrtHttpServerPatch(pRouter, Pattern, pHandler, pData);

xrtHttpServerDelete

注册常用 DELETE 路由。

bool xrtHttpServerDelete( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册常用 DELETE 路由。

示例已编译验证

/* 注册常用 DELETE 路由。 */
result = xrtHttpServerDelete(pRouter, Pattern, pHandler, pData);

xrtHttpServerAny

注册任意合法 HTTP 方法路由。

bool xrtHttpServerAny( xhttpserverrouter* pRouter, xstrview Pattern, xhttpserverrouteproc pHandler, ptr pData );
参数说明
xhttpserverrouter* pRouter路由器
xstrview Pattern模式文本
xhttpserverrouteproc pHandler处理器
ptr pData用户数据
返回:注册任意合法 HTTP 方法路由。

示例已编译验证

/* 注册任意合法 HTTP 方法路由。 */
result = xrtHttpServerAny(pRouter, Pattern, pHandler, pData);

xrtHttpServerRouterFreeze

冻结 Router;成功后可无锁并发分发且不能继续注册。

bool xrtHttpServerRouterFreeze( xhttpserverrouter* pRouter );
参数说明
xhttpserverrouter* pRouter路由器
返回:冻结 Router;成功后可无锁并发分发且不能继续注册。

示例已编译验证

xrtHttpServerRouterFreeze(pRouter);

xrtHttpServerRouterFrozen

返回 Router 是否已经冻结。

bool xrtHttpServerRouterFrozen( const xhttpserverrouter* pRouter );
参数说明
const xhttpserverrouter* pRouter路由器
返回:返回 Router 是否已经冻结。

示例已编译验证

/* 返回 Router 是否已经冻结。 */
result = xrtHttpServerRouterFrozen(pRouter);

xrtHttpServerRouterCount

返回已注册路由数量。

size_t xrtHttpServerRouterCount( const xhttpserverrouter* pRouter );
参数说明
const xhttpserverrouter* pRouter路由器
返回:返回已注册路由数量。

示例已编译验证

/* 返回已注册路由数量。 */
result = xrtHttpServerRouterCount(pRouter);

xrtHttpServerRouterDispatch

对完整请求执行一次分发;未命中时自动响应 404、405 或 OPTIONS。

xhttprouterstatus xrtHttpServerRouterDispatch( const xhttpserverrouter* pRouter, xhttpserver* pServer, xhttpconn* pConnection, const xhttpserverrequest* pRequest );
参数说明
const xhttpserverrouter* pRouter路由器
xhttpserver* pServer服务端对象
xhttpconn* pConnection连接对象
const xhttpserverrequest* pRequest请求对象
返回:对完整请求执行一次分发;未命中时自动响应 404、405 或 OPTIONS。

示例已编译验证

/* 对完整请求执行一次分发;未命中时自动响应 404、405 或 OPTIONS。 */
result = xrtHttpServerRouterDispatch(pRouter, pServer, pConnection, pRequest);

xrtHttpServerRouterStart

XRT_API xhttpserver* xrtHttpServerRouterStart( xnetengine* pEngine, const xhttpserverconfig* pConfig, xhttpserverrouter* pRouter, const xhttpserverevents* pEvents );

;
返回:XRT_API xhttpserver* xrtHttpServerRouterStart( xnetengine* pEngine, const xhttpserverconfig* pConfig, xhttpserverrouter* pRouter, const xhttpserverevents* pEvents );

示例已编译验证

/* XRT_API xhttpserver* xrtHttpServerRouterStart( xnetengine* pEngine, const xhttpserverconfig* pConfig, xhttpserverrouter* pRouter, const xhttpserverevents* pEvents ); */
result = xrtHttpServerRouterStart();