fastdo  0.5.12
eiennet::Server< _ClientCtxClass > 模板类 参考

服务器类基础 更多...

#include <eiennet_socket.hpp>

eiennet::Server< _ClientCtxClass > 的协作图:

Public 类型

using ClientCtxSharedPointer = winux::SharedPointer< _ClientCtxClass >
 
using StartupHandlerFunction = std::function< void(ClientCtxSharedPointer clientCtxPtr) >
 

Public 成员函数

 Server (ip::EndPoint const &ep, int threadCount=4, int backlog=0, double durationSec=0.1)
 构造函数1 更多...
 
virtual ~Server ()
 
virtual int run ()
 
size_t getClientsCount () const
 
void onStartupHandler (StartupHandlerFunction handler)
 
void removeClient (winux::uint64 clientId)
 

Protected 成员函数

ClientCtxSharedPointer_addClient (ip::EndPoint const &clientEp, winux::SharedPointer< ip::tcp::Socket > clientSockPtr)
 
virtual void onStartup (ClientCtxSharedPointer clientCtxPtr)
 

Protected 属性

winux::uint64 _cumulativeClientId
 
bool _stop
 
winux::ThreadPool _pool
 
winux::Mutex _mtxServer
 
ip::tcp::Socket _servSock
 
std::map< winux::uint64, ClientCtxSharedPointer_clients
 
StartupHandlerFunction _startupHandler
 

详细描述

template<class _ClientCtxClass>
class eiennet::Server< _ClientCtxClass >

服务器类基础

直接使用时,需要给定事件处理;继承时需要override相应的事件虚函数。
事件: onStartup() - 业务逻辑启动

在文件 eiennet_socket.hpp837 行定义.

成员类型定义说明

template<class _ClientCtxClass>
using eiennet::Server< _ClientCtxClass >::ClientCtxSharedPointer = winux::SharedPointer<_ClientCtxClass>

在文件 eiennet_socket.hpp840 行定义.

template<class _ClientCtxClass>
using eiennet::Server< _ClientCtxClass >::StartupHandlerFunction = std::function< void( ClientCtxSharedPointer clientCtxPtr ) >

在文件 eiennet_socket.hpp841 行定义.

构造及析构函数说明

template<class _ClientCtxClass>
eiennet::Server< _ClientCtxClass >::Server ( ip::EndPoint const &  ep,
int  threadCount = 4,
int  backlog = 0,
double  durationSec = 0.1 
)
inline

构造函数1

参数
ep服务监听的EndPoint
threadCount线程池线程数量
backloglisten(backlog)
durationSec等待的时间(每个任务wait占用的时间片)

在文件 eiennet_socket.hpp849 行定义.

template<class _ClientCtxClass>
virtual eiennet::Server< _ClientCtxClass >::~Server ( )
inlinevirtual

在文件 eiennet_socket.hpp858 行定义.

成员函数说明

template<class _ClientCtxClass>
ClientCtxSharedPointer& eiennet::Server< _ClientCtxClass >::_addClient ( ip::EndPoint const &  clientEp,
winux::SharedPointer< ip::tcp::Socket clientSockPtr 
)
inlineprotected

在文件 eiennet_socket.hpp913 行定义.

template<class _ClientCtxClass>
size_t eiennet::Server< _ClientCtxClass >::getClientsCount ( ) const
inline

在文件 eiennet_socket.hpp895 行定义.

template<class _ClientCtxClass>
virtual void eiennet::Server< _ClientCtxClass >::onStartup ( ClientCtxSharedPointer  clientCtxPtr)
inlineprotectedvirtual

在文件 eiennet_socket.hpp933 行定义.

template<class _ClientCtxClass>
void eiennet::Server< _ClientCtxClass >::onStartupHandler ( StartupHandlerFunction  handler)
inline

在文件 eiennet_socket.hpp901 行定义.

template<class _ClientCtxClass>
void eiennet::Server< _ClientCtxClass >::removeClient ( winux::uint64  clientId)
inline

在文件 eiennet_socket.hpp906 行定义.

template<class _ClientCtxClass>
virtual int eiennet::Server< _ClientCtxClass >::run ( )
inlinevirtual

在文件 eiennet_socket.hpp862 行定义.

类成员变量说明

template<class _ClientCtxClass>
std::map< winux::uint64, ClientCtxSharedPointer > eiennet::Server< _ClientCtxClass >::_clients
protected

在文件 eiennet_socket.hpp930 行定义.

template<class _ClientCtxClass>
winux::uint64 eiennet::Server< _ClientCtxClass >::_cumulativeClientId
protected

在文件 eiennet_socket.hpp925 行定义.

template<class _ClientCtxClass>
winux::Mutex eiennet::Server< _ClientCtxClass >::_mtxServer
protected

在文件 eiennet_socket.hpp928 行定义.

template<class _ClientCtxClass>
winux::ThreadPool eiennet::Server< _ClientCtxClass >::_pool
protected

在文件 eiennet_socket.hpp927 行定义.

template<class _ClientCtxClass>
ip::tcp::Socket eiennet::Server< _ClientCtxClass >::_servSock
protected

在文件 eiennet_socket.hpp929 行定义.

template<class _ClientCtxClass>
StartupHandlerFunction eiennet::Server< _ClientCtxClass >::_startupHandler
protected

在文件 eiennet_socket.hpp937 行定义.

template<class _ClientCtxClass>
bool eiennet::Server< _ClientCtxClass >::_stop
protected

在文件 eiennet_socket.hpp926 行定义.


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