Sese Framework  x.y.z
A cross-platform framework
载入中...
搜索中...
未找到
sese::service::http::HttpServer类 参考final

#include <HttpServer.h>

Public 成员函数

template<class CTL , class... ARGS>
void regController (ARGS &&...args)
 
void regMountPoint (const std::string &uri_prefix, const std::string &local)
 
void regFilter (const std::string &uri_prefix, const HttpService::FilterCallback &callback)
 
void regServlet (const net::http::Servlet &servlet)
 
void regTailFilter (const HttpService::FilterCallback &tail_filter)
 
void setKeepalive (uint32_t seconds)
 
void regService (const net::IPAddress::Ptr &address, std::unique_ptr< security::SSLContext > context)
 
void setName (const std::string &name)
 
void setConnectionCallback (const HttpService::ConnectionCallback &callback)
 
bool startup () const
 
bool shutdown () const
 

Private 属性

std::string name
 
uint32_t keepalive = 5
 
std::vector< HttpService::Ptrservices
 
std::vector< net::http::Controller::Ptrcontrollers
 
HttpService::MountPointMap mount_points
 
HttpService::ServletMap servlets
 
HttpService::FilterMap filters
 
HttpService::FilterCallback tail_filter
 
HttpService::ConnectionCallback connection_callback
 

详细描述

Http 服务器

注解
调用优先级 Filter > Mount Point(Filter) > Controller = Servlet,互相独立不可转换

成员函数说明

◆ regController()

template<class CTL , class... ARGS>
void sese::service::http::HttpServer::regController ( ARGS &&... args)

注册控制器

模板参数
CTL控制器类型
ARGS实例化参数类型
参数
args实例化参数

引用了 controllers , 以及 servlets.

◆ regFilter()

void HttpServer::regFilter ( const std::string & uri_prefix,
const HttpService::FilterCallback & callback )

注册过滤器

参数
uri_prefixURI 前缀
callback回调函数,函数返回 true 需要下一步处理即继续判断之后的 Mount Point 以及 Controller 等,反之则拦截当前请求并直接响应

引用了 callback() , 以及 filters.

◆ regMountPoint()

void HttpServer::regMountPoint ( const std::string & uri_prefix,
const std::string & local )

注册文件系统挂载点

参数
uri_prefixURI 前缀
local本地路径

引用了 mount_points.

◆ regService()

void HttpServer::regService ( const net::IPAddress::Ptr & address,
std::unique_ptr< security::SSLContext > context )

注册 Http 服务

参数
address监听地址
contextSSL 服务上下文,为空则不启用 SSL

引用了 connection_callback, sese::service::http::HttpService::create(), filters, keepalive, mount_points, name, services, servlets , 以及 tail_filter.

◆ regServlet()

void HttpServer::regServlet ( const net::http::Servlet & servlet)

注册 Http 应用

参数
servletHttp 应用

引用了 sese::net::http::Servlet::getUri() , 以及 servlets.

◆ regTailFilter()

void HttpServer::regTailFilter ( const HttpService::FilterCallback & tail_filter)

此方法用于注册一个后置 Filter,它将在其他所有 Servlet、控制器和挂载点处理异常之后执行。 如果需要对响应进行最终修改或处理(自定义404等页面),可以使用此功能。 返回值表示是否拦截做了处理,拦截后响应类型将会变为 Controller,并接受相关处理。

参数
tail_filter待注册的后置 Http Filter,用于处理请求

引用了 tail_filter.

◆ setConnectionCallback()

void HttpServer::setConnectionCallback ( const HttpService::ConnectionCallback & callback)

设置连接回调函数,函数会在连接对象被创建前调用,SSL 连接尚未握手

参数
callback连接回调函数,函数返回 true 将继续正常处理,反之则直接丢弃该连接

引用了 callback() , 以及 connection_callback.

◆ setKeepalive()

void HttpServer::setKeepalive ( uint32_t seconds)

设置 Keepalive

参数
secondsKeepalive 时间,最小值为 5

引用了 keepalive.

◆ setName()

void HttpServer::setName ( const std::string & name)

设置服务器名称

参数
name服务器名称

引用了 name.

◆ shutdown()

bool HttpServer::shutdown ( ) const

终止服务

返回
结果

引用了 services.

◆ startup()

bool HttpServer::startup ( ) const

启动服务

返回
结果

引用了 services, SESE_ERROR , 以及 SESE_INFO.

类成员变量说明

◆ connection_callback

HttpService::ConnectionCallback sese::service::http::HttpServer::connection_callback
private

被这些函数引用 regService() , 以及 setConnectionCallback().

◆ controllers

std::vector<net::http::Controller::Ptr> sese::service::http::HttpServer::controllers
private

被这些函数引用 regController().

◆ filters

HttpService::FilterMap sese::service::http::HttpServer::filters
private

被这些函数引用 regFilter() , 以及 regService().

◆ keepalive

uint32_t sese::service::http::HttpServer::keepalive = 5
private

被这些函数引用 regService() , 以及 setKeepalive().

◆ mount_points

HttpService::MountPointMap sese::service::http::HttpServer::mount_points
private

被这些函数引用 regMountPoint() , 以及 regService().

◆ name

std::string sese::service::http::HttpServer::name
private

被这些函数引用 regService() , 以及 setName().

◆ services

std::vector<HttpService::Ptr> sese::service::http::HttpServer::services
private

被这些函数引用 regService(), shutdown() , 以及 startup().

◆ servlets

HttpService::ServletMap sese::service::http::HttpServer::servlets
private

被这些函数引用 regController(), regService() , 以及 regServlet().

◆ tail_filter

HttpService::FilterCallback sese::service::http::HttpServer::tail_filter
private

被这些函数引用 regService() , 以及 regTailFilter().


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