NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
载入中...
搜索中...
未找到
neforce::http::async_filter类 参考

异步过滤器基类(回调模式) 更多...

#include <async_filter.hpp>

类 neforce::http::async_filter 继承关系图:
[图例]

Public 类型

using next_callback = function<void(bool should_continue)>
 异步继续回调

Public 成员函数

virtual void pre_filter_async (http_request &request, http_response &response, http_context &ctx, next_callback next)
 异步预过滤
virtual void post_filter_async (http_request &request, http_response &response, http_context &ctx, next_callback next)
 异步后过滤
Public 成员函数 继承自 neforce::http::http_filter
virtual void do_filter (http_request &request, http_response &response)=0
 核心过滤方法
virtual bool pre_filter (http_request &request, http_response &response)
 预处理方法
virtual void post_filter (http_request &request, http_response &response)
 后处理方法
virtual string name () const
 获取过滤器名称

详细描述

异步过滤器基类(回调模式)

扩展 http_filter,为需要异步 I/O 的中间件提供回调式异步接口。。

使用流程:

  1. 框架调用 pre_filter_async(request, response, context, next)
  2. 过滤器执行异步操作
  3. 完成时调用 next(true) 继续,或 next(false) 中断

无异步过滤器时,http_router 走零开销同步路径。

在文件 async_filter.hpp31 行定义.

成员类型定义说明

◆ next_callback

using neforce::http::async_filter::next_callback = function<void(bool should_continue)>

异步继续回调

参数
should_continuetrue=继续到下一过滤器,false=中断并返回当前响应

在文件 async_filter.hpp37 行定义.

成员函数说明

◆ post_filter_async()

virtual void neforce::http::async_filter::post_filter_async ( http_request & request,
http_response & response,
http_context & ctx,
next_callback next )
inlinevirtual

异步后过滤

参数
requestHTTP请求
responseHTTP响应
ctx请求上下文
next完成时调用

默认实现直接调用 post_filter 并 next(true)。

在文件 async_filter.hpp66 行定义.

引用了 neforce::next() , 以及 neforce::http::http_filter::post_filter().

◆ pre_filter_async()

virtual void neforce::http::async_filter::pre_filter_async ( http_request & request,
http_response & response,
http_context & ctx,
next_callback next )
inlinevirtual

异步预过滤

参数
requestHTTP请求
responseHTTP响应(可预设以中断处理)
ctx请求上下文(跨中间件数据传递)
next完成时调用 next(true) 继续或 next(false) 中断

默认实现直接调用 next(true),等效于同步 pre_filter 返回 true。

在文件 async_filter.hpp48 行定义.

引用了 neforce::next() , 以及 neforce::http::http_filter::pre_filter().


该类的文档由以下文件生成: