Endpoint 类是Pistache给用户提供的启动服务器的接口,基本上就是对在Listener类的上面封装了一层调用接口。
唯一的就是实现了一个Options的结构体, 以供用户定义一些参数,包括了:
-
int threads_
和threadsName_
用于设置工作线程的数目和线程的名字,见linux手册翻译——pthread_setname_np(3); -
Flags<Tcp::Options> flags_;
用于设置Socket options,见linux手册翻译——socket(7);和socket type,见linux手册翻译——socket(2)
enum class Options : uint64_t {
None = 0,
NoDelay = 1,
Linger = NoDelay << 1,
FastOpen = Linger << 1,
QuickAck = FastOpen << 1,
ReuseAddr = QuickAck << 1,
ReusePort = ReuseAddr << 1,
CloseOnExec = ReusePort << 1,
};
-
int backlog_;
见linux手册翻译——listen(2) NOTES 部分 ; size_t maxRequestSize_;
-
size_t maxResponseSize_;
设置Request和Response的最大限制,一般Response是不限制大小的 std::chrono::milliseconds headerTimeout_;
-
std::chrono::milliseconds bodyTimeout_;
对于长连接而言,用于设置在多久之内没有HTTP请求之后关闭。
对于其他主要的函数,在Pistache源码分析 —— Server的初始化和请求处理中已经分析。其他的没事什么好说的,实现全部都在Pistache源码分析 —— Listener类中。
网友评论