acl  3.5.3.0
acl::aio_handle类 参考

#include <aio_handle.hpp>

+ 类 acl::aio_handle 继承关系图:
+ acl::aio_handle 的协作图:

Public 成员函数

 aio_handle (aio_handle_type engine_type=ENGINE_SELECT, unsigned int nMsg=0)
 
 aio_handle (ACL_AIO *handle)
 
virtual ~aio_handle (void)
 
void keep_read (bool onoff)
 
bool keep_read (void) const
 
long long int set_timer (aio_timer_callback *callback, long long int delay, unsigned int id=0)
 
long long int del_timer (aio_timer_callback *callback)
 
long long del_timer (aio_timer_callback *callback, unsigned int id)
 
void delay_free (aio_delay_free *callback)
 
ACL_AIOget_handle (void) const
 
aio_handle_type get_engine_type (void) const
 
int length (void) const
 
bool check (void)
 
int last_nready (void) const
 
void stop (void)
 
void reset (void)
 
void set_dns (const char *addrs, int timeout)
 
void dns_add (const char *addrs, int timeout)
 
void dns_del (const char *addrs)
 
void dns_clear (void)
 
size_t dns_size (void) const
 
bool dns_empty (void) const
 
void dns_list (std::vector< std::pair< string, unsigned short > > &out)
 
void set_delay_sec (int n)
 
void set_delay_usec (int n)
 
void set_check_inter (int n)
 
void set_rbuf_size (int n)
 

Protected 成员函数

void increase (void)
 
virtual void on_increase (void)
 
void decrease (void)
 
virtual void on_decrease (void)
 

友元

class aio_stream
 

详细描述

在文件 aio_handle.hpp29 行定义.

构造及析构函数说明

◆ aio_handle() [1/2]

acl::aio_handle::aio_handle ( aio_handle_type  engine_type = ENGINE_SELECT,
unsigned int  nMsg = 0 
)

构造函数,会自动创建IO事件引擎,并且在析构函数中会自动释放

参数
engine_type{aio_handle_type} 所采用的引擎类型 ENGINE_SELECT: select 方式,支持 win32/unix 平台 ENGINE_POLL: poll 方式,支持 unix 平台 ENGINE_KERNEL: 自动根据各个系统平台所支持的高效内核引擎进行设置 ENGINE_WINMSG: win32 界面消息方式,支持 win32 平台
nMsg{unsigned int} 若 engine_type 为 ENGINE_WINMSG,当该值 大于 0 时,该异步句柄便与该消息绑定,否则与缺省消息绑定; 当 engine_type 为非 ENGINE_WINMSG 时,该值对其它异步句柄不起作用

◆ aio_handle() [2/2]

acl::aio_handle::aio_handle ( ACL_AIO handle)

构造函数,调用者将 ACL_AIO 句柄传进,而在类的析构函数中并不会 自动释放该 ACL_AIO 句柄

参数
handle{ACL_AIO*} ACL_AIO 句柄

◆ ~aio_handle()

virtual acl::aio_handle::~aio_handle ( void  )
virtual

成员函数说明

◆ check()

bool acl::aio_handle::check ( void  )

检查所有异步流的状态,并触发准备的异步流的处理过程

返回
{bool} 是否应中止异步引擎

◆ decrease()

void acl::aio_handle::decrease ( void  )
protected

异步流个数减 1

◆ del_timer() [1/2]

long long int acl::aio_handle::del_timer ( aio_timer_callback callback)

删除定时器的所有定时任务事件

参数
callback{aio_timer_callback*} 定时器回调函数类对象
返回
{time_t} 定时器生效时间(从1970.1.1以来的微秒数)

◆ del_timer() [2/2]

long long acl::aio_handle::del_timer ( aio_timer_callback callback,
unsigned int  id 
)

删除定时器中某个指定 ID 号的定时任务

参数
callback{aio_timer_callback*} 定时器回调函数类对象
id{unsigned int} 定时器某个任务的 ID 号
返回
{time_t} 定时器生效时间(从1970.1.1以来的微秒数)

◆ delay_free()

void acl::aio_handle::delay_free ( aio_delay_free callback)

当定时器处于锁定状态时,用户因为无法释放该定时器而造成内存泄露, 通过此函数,可以将处于锁定状态的定时器当处于未锁定状态时被事件 引擎延期释放(调用 aio_delay_free::destroy()),从而可以避免 内存泄露问题

参数
callback{aio_delay_free*}

◆ dns_add()

void acl::aio_handle::dns_add ( const char *  addrs,
int  timeout 
)

◆ dns_clear()

void acl::aio_handle::dns_clear ( void  )

清除掉所设置的所有 DNS 服务器列表

◆ dns_del()

void acl::aio_handle::dns_del ( const char *  addrs)

删除指定的 DNS 服务器地址列表,格式:ip1:port1;ip2:port2...

参数
addrs{const char*} DNS 服务器地址列表

◆ dns_empty()

bool acl::aio_handle::dns_empty ( void  ) const

判断 DNS 服务器列表是否为空

返回
{bool}

◆ dns_list()

void acl::aio_handle::dns_list ( std::vector< std::pair< string, unsigned short > > &  out)

获得 DNS 服务器地址列表

参数
out{std::vector<std::pair<acl::string, unsigned short> >&}

◆ dns_size()

size_t acl::aio_handle::dns_size ( void  ) const

DNS 服务器列表数量

返回
{size_t}

◆ get_engine_type()

aio_handle_type acl::aio_handle::get_engine_type ( void  ) const

获得异步引擎的类型

返回
{aio_handle_type}

◆ get_handle()

ACL_AIO* acl::aio_handle::get_handle ( void  ) const

获得 ACL_AIO 句柄

返回
{ACL_AIO*}

◆ increase()

void acl::aio_handle::increase ( void  )
protected

异步流个数加 1

◆ keep_read() [1/2]

void acl::aio_handle::keep_read ( bool  onoff)

针对异步读流,设置是否是连续读,该配置项将会被所有的基于 该异步引擎句柄的异步读流所继承,一般 aio_handle 类对象在缺省 情况下是连续读的

参数
onoff{bool} 设置是否是连续读

◆ keep_read() [2/2]

bool acl::aio_handle::keep_read ( void  ) const

获得异步引擎句柄是否设置了持续读数据的功能

返回
{bool}

◆ last_nready()

int acl::aio_handle::last_nready ( void  ) const

获得本次事件循环被触发的事件次数

返回
{int}

◆ length()

int acl::aio_handle::length ( void  ) const

获得当前处于监控的异步流的数量

返回
{int}

◆ on_decrease()

virtual void acl::aio_handle::on_decrease ( void  )
inlineprotectedvirtual

当异步流个数减 1 时的回调虚函数

在文件 aio_handle.hpp243 行定义.

243 {}

◆ on_increase()

virtual void acl::aio_handle::on_increase ( void  )
inlineprotectedvirtual

当异步流个数加 1 时的回调虚函数

在文件 aio_handle.hpp233 行定义.

233 {}

◆ reset()

void acl::aio_handle::reset ( void  )

重置异步引擎的内部状态

◆ set_check_inter()

void acl::aio_handle::set_check_inter ( int  n)

设置事件循环过程中定时检查所有描述字状态的时间间隔, 内部缺省值 100 ms

◆ set_delay_sec()

void acl::aio_handle::set_delay_sec ( int  n)

设置异步引擎循环的等待时间中的秒级部分

参数
n{int} 设置用 select/poll/epoll/kqueue/devpoll 时的秒级等待时间

◆ set_delay_usec()

void acl::aio_handle::set_delay_usec ( int  n)

设置异步引擎循环的等待时间中的微秒级部分

参数
n{int} 设置用 select/poll/epoll/kqueue/devpoll 时的微秒级等待时间

◆ set_dns()

void acl::aio_handle::set_dns ( const char *  addrs,
int  timeout 
)

设置 DNS 服务器地址列表,格式:ip1:port1;ip2:port2...

参数
addrs{const char*} DNS 服务器地址列表,如:8.8.8.8:53;1.1.1.1:53
timeout{int} DNS 查询超时时间(秒) 注:set_dns 和 dns_add 执行相同的功能

◆ set_rbuf_size()

void acl::aio_handle::set_rbuf_size ( int  n)

设置异步流的读缓存区大小

参数
n{int} 读缓冲区大小

◆ set_timer()

long long int acl::aio_handle::set_timer ( aio_timer_callback callback,
long long int  delay,
unsigned int  id = 0 
)

设置定时器

参数
callback{aio_timer_callback*} 定时器回调函数类对象
delay{int64} 定时器时间间隔(微秒)
id{unsigned int} 定时器某个任务的 ID 号
返回
{int64} 定时器生效时间(从1970.1.1以来的微秒数)

◆ stop()

void acl::aio_handle::stop ( void  )

通知异步流引擎中止

友元及相关函数文档

◆ aio_stream

friend class aio_stream
friend

在文件 aio_handle.hpp223 行定义.


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