acl
3.5.3.0
|
#include <aio_istream.hpp>
Public 成员函数 | |
aio_istream (aio_handle *handle) | |
aio_istream (aio_handle *handle, int fd) | |
void | add_read_callback (aio_callback *callback) |
int | del_read_callback (aio_callback *callback=NULL) |
int | disable_read_callback (aio_callback *callback=NULL) |
int | enable_read_callback (aio_callback *callback=NULL) |
void | gets (int timeout=0, bool nonl=true, long long int delay=0, aio_timer_reader *callback=NULL) |
void | read (int count=0, int timeout=0, long long int delay=0, aio_timer_reader *callback=NULL) |
void | read_wait (int timeout=0) |
void | disable_read (void) |
void | keep_read (bool onoff) |
bool | keep_read (void) const |
aio_istream & | set_buf_max (int max) |
int | get_buf_max (void) const |
Public 成员函数 继承自 acl::aio_stream | |
aio_stream (aio_handle *handle) | |
void | close (void) |
void | add_close_callback (aio_callback *callback) |
void | add_timeout_callback (aio_callback *callback) |
int | del_close_callback (aio_callback *callback=NULL) |
int | del_timeout_callback (aio_callback *callback=NULL) |
int | disable_close_callback (aio_callback *callback=NULL) |
int | disable_timeout_callback (aio_callback *callback=NULL) |
int | enable_close_callback (aio_callback *callback=NULL) |
int | enable_timeout_callback (aio_callback *callback=NULL) |
ACL_ASTREAM * | get_astream (void) const |
ACL_VSTREAM * | get_vstream (void) const |
int | get_socket (void) const |
int | sock_handle (void) const |
const char * | get_peer (bool full=false) const |
const char * | get_local (bool full=false) const |
aio_handle & | get_handle (void) const |
stream_hook * | setup_hook (stream_hook *hook) |
stream_hook * | get_hook (void) const |
stream_hook * | remove_hook (void) |
Protected 成员函数 | |
virtual | ~aio_istream (void) |
virtual void | destroy (void) |
void | hook_read (void) |
Protected 成员函数 继承自 acl::aio_stream | |
virtual | ~aio_stream (void) |
void | hook_error (void) |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
友元 | |
class | aio_timer_reader |
额外继承的成员函数 | |
Protected 类型 继承自 acl::aio_stream | |
enum | { STATUS_HOOKED_ERROR = 1, STATUS_HOOKED_READ = 1 << 1, STATUS_HOOKED_WRITE = 1 << 2, STATUS_HOOKED_OPEN = 1 << 3, STATUS_CONN_OPENED = 1 << 4 } |
Protected 属性 继承自 acl::aio_stream | |
aio_handle * | handle_ |
ACL_ASTREAM * | stream_ |
stream_hook * | hook_ |
unsigned | status_ |
异步读数据流类定义,该类只能在堆上被实例化,在析构时需要调用 close 函数以释放该类对象
在文件 aio_istream.hpp 第 60 行定义.
acl::aio_istream::aio_istream | ( | aio_handle * | handle | ) |
构造函数
handle | {aio_handle*} 异步事件引擎句柄 |
acl::aio_istream::aio_istream | ( | aio_handle * | handle, |
int | fd | ||
) |
构造函数,创建异步读流对象,并 hook 读过程及关闭/超时过程
handle | {aio_handle*} 异步事件引擎句柄 |
fd | {int} 连接套接口句柄 |
|
protectedvirtual |
void acl::aio_istream::add_read_callback | ( | aio_callback * | callback | ) |
添加异可读时的回调类对象指针,如果该回调类对象已经存在,则只是 使该对象处于打开可用状态
callback | {aio_callback*} 继承 aio_callback 的子类回调类对象, 当异步流有数据时会先调用此回调类对象中的 read_callback 接口 |
int acl::aio_istream::del_read_callback | ( | aio_callback * | callback = NULL | ) |
从读回调对象集合中删除
callback | {aio_read_callback*} 被删除的回调对象, 若该值为空,则删除所有的回调对象 |
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则删除所有的读回调对象 |
|
protectedvirtual |
void acl::aio_istream::disable_read | ( | void | ) |
禁止异步流的异步读状态,将该异步流从异步引擎的监控中 移除,直到用户调用任何一个异步读操作(此时,异步引擎会 自动重新监控该流的可读状态)
int acl::aio_istream::disable_read_callback | ( | aio_callback * | callback = NULL | ) |
禁止回调对象类集合中的某个回调类对象,但并不从回调类对象 集合中删除,只是不被调用而已
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则禁止所有的读回调对象 |
int acl::aio_istream::enable_read_callback | ( | aio_callback * | callback = NULL | ) |
启用所有的回调对象被调用
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则启用所有的读回调对象 |
int acl::aio_istream::get_buf_max | ( | void | ) | const |
获得当前接收缓冲区的最大长度限制
void acl::aio_istream::gets | ( | int | timeout = 0 , |
bool | nonl = true , |
||
long long int | delay = 0 , |
||
aio_timer_reader * | callback = NULL |
||
) |
异步读取一行数据,当延迟异步读时,如果连续调用此过程, 则只有最后一个延迟读操作生效
timeout | {int} 读超时时间(秒),若为 0 则表示 永远等待直到读到完整一行数据或出错 |
nonl | {bool} 是否自动去掉尾部的回车换行符 |
delay | {int64} 如果对方发送数据比较快时,此参数 大于 0 时可以延迟接收对方的数据,该值控制延迟读数据 的时间(单位为微秒) |
callback | {aio_timer_reader*} 定时器到达时的回调函数类对象, 当 delay > 0,如果该值为空,则采用缺省的对象 |
|
protected |
注册可读的回调函数
void acl::aio_istream::keep_read | ( | bool | onoff | ) |
设置流是否采用连接读功能
onoff | {bool} |
bool acl::aio_istream::keep_read | ( | void | ) | const |
获得流是否是设置了连续读功能
void acl::aio_istream::read | ( | int | count = 0 , |
int | timeout = 0 , |
||
long long int | delay = 0 , |
||
aio_timer_reader * | callback = NULL |
||
) |
异步读取数据,当延迟异步读时,如果连续调用此过程, 则只有最后一个延迟读操作生效
count | {int} 所要求读到的数据量,如果为 0 则只要有数据 可读就返回,否则直到读超时或读出错或读满足所要求的字节数 |
timeout | {int} 读超时时间(秒),若为 0 则表示 永远等待直到读到所要求的数据或出错 |
delay | {int64} 如果对方发送数据比较快时,此参数 大于 0 时可以延迟接收对方的数据,该值控制延迟读数据 的时间(单位为微秒) |
callback | {aio_timer_reader*} 定时器到达时的回调函数类对象, 如果该值为空,则采用缺省的对象 |
void acl::aio_istream::read_wait | ( | int | timeout = 0 | ) |
异步等待连接流可读,该函数设置异步流的读监听状态,当有数据可读 时,回调函数被触发,由用户自己负责数据的读取
timeout | {int} 读超时时间(秒),当该值为 0 时,则没有读超时 |
aio_istream& acl::aio_istream::set_buf_max | ( | int | max | ) |
|
friend |
在文件 aio_istream.hpp 第 214 行定义.