#include <aio_handle.hpp>
◆ aio_handle() [1/2]
构造函数,会自动创建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 |
◆ del_timer() [1/2]
删除定时器的所有定时任务事件
- 参数
-
callback | {aio_timer_callback*} 定时器回调函数类对象 |
- 返回
- {time_t} 定时器生效时间(从1970.1.1以来的微秒数)
◆ del_timer() [2/2]
删除定时器中某个指定 ID 号的定时任务
- 参数
-
callback | {aio_timer_callback*} 定时器回调函数类对象 |
id | {unsigned int} 定时器某个任务的 ID 号 |
- 返回
- {time_t} 定时器生效时间(从1970.1.1以来的微秒数)
◆ delay_free()
当定时器处于锁定状态时,用户因为无法释放该定时器而造成内存泄露, 通过此函数,可以将处于锁定状态的定时器当处于未锁定状态时被事件 引擎延期释放(调用 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_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 |
◆ get_engine_type()
获得异步引擎的类型
- 返回
- {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 |
◆ keep_read() [1/2]
void acl::aio_handle::keep_read |
( |
bool |
onoff | ) |
|
针对异步读流,设置是否是连续读,该配置项将会被所有的基于 该异步引擎句柄的异步读流所继承,一般 aio_handle 类对象在缺省 情况下是连续读的
- 参数
-
◆ keep_read() [2/2]
bool acl::aio_handle::keep_read |
( |
void |
| ) |
const |
获得异步引擎句柄是否设置了持续读数据的功能
- 返回
- {bool}
◆ last_nready()
int acl::aio_handle::last_nready |
( |
void |
| ) |
const |
◆ length()
int acl::aio_handle::length |
( |
void |
| ) |
const |
◆ on_decrease()
virtual void acl::aio_handle::on_decrease |
( |
void |
| ) |
|
|
inlineprotectedvirtual |
◆ on_increase()
virtual void acl::aio_handle::on_increase |
( |
void |
| ) |
|
|
inlineprotectedvirtual |
◆ 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 | ) |
|
◆ 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
该类的文档由以下文件生成: