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

用户均衡负载器,此负载器适用于全部平台 更多...

#include <UserBalanceLoader.h>

struct  SocketStatus
 套接字状态 更多...
 

Public 成员函数

 ~UserBalanceLoader () noexcept
 
void setThreads (size_t th) noexcept
 
void setAddress (const net::IPAddress::Ptr &addr) noexcept
 
void setAcceptTimeout (uint32_t to) noexcept
 
void setDispatchTimeout (uint32_t to) noexcept
 
bool isStarted () const
 
template<class SERVICE >
bool init () noexcept
 
template<class SERVICE >
bool init (std::function< SERVICE *()> creator) noexcept
 
void start () noexcept
 启动当前负载器和服务
 
void stop () noexcept
 关闭当前负载器并卸载服务
 
void dispatchSocket (socket_t sock, void *data)
 
void setOnDispatchedCallbackFunction (const std::function< void(int, sese::event::EventLoop *, void *)> &cb)
 

Protected 成员函数

void master () noexcept
 
void slave (sese::event::EventLoop *event_loop, std::queue< SocketStatus > *master_queue, std::queue< SocketStatus > *slave_queue, std::mutex *mutex) noexcept
 

Protected 属性

std::atomic_bool _isStart {false}
 
std::atomic_bool _isStop {false}
 
uint32_t acceptTimeout = 100
 
uint32_t dispatchTimeout = 100
 
size_t threads {2}
 
std::vector< sese::event::EventLoop * > eventLoopVector
 
std::vector< sese::Thread::PtrthreadVector
 
sese::net::IPAddress::Ptr address = sese::net::IPv4Address::localhost(8080)
 
sese::net::Socketsocket {nullptr}
 
sese::service::MasterEventLoopmasterEventLoop {nullptr}
 
sese::Thread::Ptr masterThread {nullptr}
 
std::queue< SocketStatus > * masterSocketQueueArray {nullptr}
 socket_t 交换队列
 
std::queue< SocketStatus > * slaveSocketQueueArray {nullptr}
 
std::mutex * mutexArray {nullptr}
 
std::function< void(int, sese::event::EventLoop *event_loop, void *)> onDispatchedCallbackFunction
 

详细描述

用户均衡负载器,此负载器适用于全部平台

构造及析构函数说明

◆ ~UserBalanceLoader()

sese::service::UserBalanceLoader::~UserBalanceLoader ( )
noexcept

成员函数说明

◆ dispatchSocket()

void sese::service::UserBalanceLoader::dispatchSocket ( sese::socket_t sock,
void * data )

◆ init() [1/2]

template<class SERVICE >
bool sese::service::UserBalanceLoader::init ( )
noexcept

初始化负载器资源

模板参数
SERVICE需要启动的服务
返回
是否初始化成功

引用了 init().

被这些函数引用 sese::iocp::v1::IOCPServer::init() , 以及 init().

◆ init() [2/2]

template<class SERVICE >
bool sese::service::UserBalanceLoader::init ( std::function< SERVICE *()> creator)
noexcept

初始化均衡器资源

模板参数
SERVICE需要启动的服务
参数
creatorService 创建函数,创建成功返回实例指针,否则应该返回空表示创建失败
返回
是否初始化成功

引用了 sese::net::Socket::IPv4, sese::net::Socket::IPv6 , 以及 sese::net::Socket::TCP.

◆ isStarted()

bool sese::service::UserBalanceLoader::isStarted ( ) const
inlinenodiscard

获取当前负载器状态

返回
负载器状态

引用了 _isStart.

◆ master()

void sese::service::UserBalanceLoader::master ( )
protectednoexcept

被这些函数引用 start().

◆ setAcceptTimeout()

void sese::service::UserBalanceLoader::setAcceptTimeout ( uint32_t to)
inlinenoexcept

设置主监听线程超时时间

参数
to超时时间,单位毫秒

引用了 acceptTimeout.

被这些函数引用 sese::iocp::v1::IOCPServer::setAcceptTimeout().

◆ setAddress()

void sese::service::UserBalanceLoader::setAddress ( const net::IPAddress::Ptr & addr)
inlinenoexcept

设置服务启动地址

参数
addrIP Address

引用了 address.

被这些函数引用 sese::iocp::v1::IOCPServer::setAddress().

◆ setDispatchTimeout()

void sese::service::UserBalanceLoader::setDispatchTimeout ( uint32_t to)
inlinenoexcept

设置从线程派遣超时时间

参数
to超时时间,单位毫秒

引用了 dispatchTimeout.

被这些函数引用 sese::iocp::v1::IOCPServer::setDispatchTimeout().

◆ setOnDispatchedCallbackFunction()

void sese::service::UserBalanceLoader::setOnDispatchedCallbackFunction ( const std::function< void(int, sese::event::EventLoop *, void *)> & cb)
inline

◆ setThreads()

void sese::service::UserBalanceLoader::setThreads ( size_t th)
noexcept

设置负载器使用线程数量

参数
th线程数量

被这些函数引用 sese::iocp::v1::IOCPServer::setThreads().

◆ slave()

void sese::service::UserBalanceLoader::slave ( sese::event::EventLoop * event_loop,
std::queue< SocketStatus > * master_queue,
std::queue< SocketStatus > * slave_queue,
std::mutex * mutex )
protectednoexcept

被这些函数引用 start().

◆ start()

void sese::service::UserBalanceLoader::start ( )
noexcept

启动当前负载器和服务

引用了 master() , 以及 slave().

被这些函数引用 sese::iocp::v1::IOCPServer::init().

◆ stop()

void sese::service::UserBalanceLoader::stop ( )
noexcept

关闭当前负载器并卸载服务

引用了 sese::net::Socket::close().

被这些函数引用 sese::iocp::v1::IOCPServer::shutdown() , 以及 ~UserBalanceLoader().

类成员变量说明

◆ _isStart

std::atomic_bool sese::service::UserBalanceLoader::_isStart {false}
protected

被这些函数引用 isStarted() , 以及 ~UserBalanceLoader().

◆ _isStop

std::atomic_bool sese::service::UserBalanceLoader::_isStop {false}
protected

被这些函数引用 ~UserBalanceLoader().

◆ acceptTimeout

uint32_t sese::service::UserBalanceLoader::acceptTimeout = 100
protected

被这些函数引用 setAcceptTimeout().

◆ address

sese::net::IPAddress::Ptr sese::service::UserBalanceLoader::address = sese::net::IPv4Address::localhost(8080)
protected

被这些函数引用 setAddress().

◆ dispatchTimeout

uint32_t sese::service::UserBalanceLoader::dispatchTimeout = 100
protected

被这些函数引用 setDispatchTimeout().

◆ eventLoopVector

std::vector<sese::event::EventLoop *> sese::service::UserBalanceLoader::eventLoopVector
protected

被这些函数引用 ~UserBalanceLoader().

◆ masterEventLoop

sese::service::MasterEventLoop* sese::service::UserBalanceLoader::masterEventLoop {nullptr}
protected

被这些函数引用 ~UserBalanceLoader().

◆ masterSocketQueueArray

std::queue<SocketStatus>* sese::service::UserBalanceLoader::masterSocketQueueArray {nullptr}
protected

socket_t 交换队列

被这些函数引用 ~UserBalanceLoader().

◆ masterThread

sese::Thread::Ptr sese::service::UserBalanceLoader::masterThread {nullptr}
protected

◆ mutexArray

std::mutex* sese::service::UserBalanceLoader::mutexArray {nullptr}
protected

◆ onDispatchedCallbackFunction

std::function<void(int, sese::event::EventLoop *event_loop, void *)> sese::service::UserBalanceLoader::onDispatchedCallbackFunction
protected

被这些函数引用 setOnDispatchedCallbackFunction().

◆ slaveSocketQueueArray

std::queue<SocketStatus>* sese::service::UserBalanceLoader::slaveSocketQueueArray {nullptr}
protected

被这些函数引用 ~UserBalanceLoader().

◆ socket

sese::net::Socket* sese::service::UserBalanceLoader::socket {nullptr}
protected

被这些函数引用 ~UserBalanceLoader().

◆ threads

size_t sese::service::UserBalanceLoader::threads {2}
protected

◆ threadVector

std::vector<sese::Thread::Ptr> sese::service::UserBalanceLoader::threadVector
protected

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