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

系统均衡负载器(无用户调度的负载器) 更多...

#include <SystemBalanceLoader.h>

Public 成员函数

 ~SystemBalanceLoader () 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
 关闭当前负载器并卸载服务
 

Protected 属性

std::atomic_bool _isStart {false}
 
std::atomic_bool _isStop {false}
 
uint32_t timeout = 100
 
size_t threads {2}
 
std::vector< socket_tsocketVector
 
std::vector< event::EventLoop * > eventLoopVector
 
std::vector< sese::Thread::PtrthreadVector
 
sese::net::IPAddress::Ptr address = sese::net::IPv4Address::localhost(8080)
 

详细描述

系统均衡负载器(无用户调度的负载器)

警告
此负载器仅在 Linux 上生效
参见
sese::service::BalanceLoader

构造及析构函数说明

◆ ~SystemBalanceLoader()

sese::service::SystemBalanceLoader::~SystemBalanceLoader ( )
noexcept

成员函数说明

◆ init() [1/2]

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

初始化负载器资源

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

引用了 init().

被这些函数引用 init().

◆ init() [2/2]

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

初始化均衡器资源

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

引用了 sese::net::Socket::close(), sese::net::Socket::listen(), sese::net::ReusableSocket::makeRawSocket() , 以及 sese::net::Socket::setNonblocking().

◆ isStarted()

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

获取当前负载器状态

返回
负载器状态状态

引用了 _isStart.

◆ setAcceptTimeout()

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

设置从线程派遣超时时间

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

引用了 timeout.

◆ setAddress()

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

设置服务启动地址

参数
addrIP Address

引用了 address.

◆ setDispatchTimeout()

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

设置从线程派遣超时时间

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

引用了 timeout.

◆ setThreads()

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

设置负载器使用线程数量

参数
th线程数量

◆ start()

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

启动当前负载器和服务

◆ stop()

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

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

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

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

类成员变量说明

◆ _isStart

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

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

◆ _isStop

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

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

◆ address

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

被这些函数引用 setAddress().

◆ eventLoopVector

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

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

◆ socketVector

std::vector<socket_t> sese::service::SystemBalanceLoader::socketVector
protected

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

◆ threads

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

◆ threadVector

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

◆ timeout

uint32_t sese::service::SystemBalanceLoader::timeout = 100
protected

被这些函数引用 setAcceptTimeout() , 以及 setDispatchTimeout().


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