Sese Framework
x.y.z
A cross-platform framework
|
#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::Ptr > | services |
std::vector< net::http::Controller::Ptr > | controllers |
HttpService::MountPointMap | mount_points |
HttpService::ServletMap | servlets |
HttpService::FilterMap | filters |
HttpService::FilterCallback | tail_filter |
HttpService::ConnectionCallback | connection_callback |
Http 服务器
void sese::service::http::HttpServer::regController | ( | ARGS &&... | args | ) |
void HttpServer::regFilter | ( | const std::string & | uri_prefix, |
const HttpService::FilterCallback & | callback ) |
注册过滤器
uri_prefix | URI 前缀 |
callback | 回调函数,函数返回 true 需要下一步处理即继续判断之后的 Mount Point 以及 Controller 等,反之则拦截当前请求并直接响应 |
引用了 callback() , 以及 filters.
void HttpServer::regMountPoint | ( | const std::string & | uri_prefix, |
const std::string & | local ) |
void HttpServer::regService | ( | const net::IPAddress::Ptr & | address, |
std::unique_ptr< security::SSLContext > | context ) |
注册 Http 服务
address | 监听地址 |
context | SSL 服务上下文,为空则不启用 SSL |
引用了 connection_callback, sese::service::http::HttpService::create(), filters, keepalive, mount_points, name, services, servlets , 以及 tail_filter.
void HttpServer::regServlet | ( | const net::http::Servlet & | servlet | ) |
void HttpServer::regTailFilter | ( | const HttpService::FilterCallback & | tail_filter | ) |
此方法用于注册一个后置 Filter,它将在其他所有 Servlet、控制器和挂载点处理异常之后执行。 如果需要对响应进行最终修改或处理(自定义404等页面),可以使用此功能。 返回值表示是否拦截做了处理,拦截后响应类型将会变为 Controller,并接受相关处理。
tail_filter | 待注册的后置 Http Filter,用于处理请求 |
引用了 tail_filter.
void HttpServer::setConnectionCallback | ( | const HttpService::ConnectionCallback & | callback | ) |
设置连接回调函数,函数会在连接对象被创建前调用,SSL 连接尚未握手
callback | 连接回调函数,函数返回 true 将继续正常处理,反之则直接丢弃该连接 |
引用了 callback() , 以及 connection_callback.
void HttpServer::setKeepalive | ( | uint32_t | seconds | ) |
void HttpServer::setName | ( | const std::string & | name | ) |
bool HttpServer::shutdown | ( | ) | const |
bool HttpServer::startup | ( | ) | const |
|
private |
被这些函数引用 regService() , 以及 setConnectionCallback().
|
private |
被这些函数引用 regController().
|
private |
被这些函数引用 regFilter() , 以及 regService().
|
private |
被这些函数引用 regService() , 以及 setKeepalive().
|
private |
被这些函数引用 regMountPoint() , 以及 regService().
|
private |
被这些函数引用 regService() , 以及 setName().
|
private |
被这些函数引用 regService(), shutdown() , 以及 startup().
|
private |
被这些函数引用 regController(), regService() , 以及 regServlet().
|
private |
被这些函数引用 regService() , 以及 regTailFilter().