acl
3.5.3.0
|
#include <aio_stream.hpp>
Public 成员函数 | |
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 类型 | |
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 成员函数 | |
virtual | ~aio_stream (void) |
virtual void | destroy (void) |
void | hook_error (void) |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
Protected 属性 | |
aio_handle * | handle_ |
ACL_ASTREAM * | stream_ |
stream_hook * | hook_ |
unsigned | status_ |
异步流基类,该类为纯虚类,不能被直接实例化,只能被子类继承使用 该类只能在堆上分配,不能在栈上分配
在文件 aio_stream.hpp 第 89 行定义.
|
protected |
枚举值 | |
---|---|
STATUS_HOOKED_ERROR | |
STATUS_HOOKED_READ | |
STATUS_HOOKED_WRITE | |
STATUS_HOOKED_OPEN | |
STATUS_CONN_OPENED |
在文件 aio_stream.hpp 第 259 行定义.
acl::aio_stream::aio_stream | ( | aio_handle * | handle | ) |
构造函数
handle | {aio_handle*} |
|
protectedvirtual |
void acl::aio_stream::add_close_callback | ( | aio_callback * | callback | ) |
添加关闭时的回调类对象指针,如果该回调类对象已经存在,则只是 使该对象处于打开可用状态
callback | {aio_callback*} 继承 aio_callback 的子类回调类对象, 当异步流关闭前会先调用此回调类对象中的 close_callback 接口 |
void acl::aio_stream::add_timeout_callback | ( | aio_callback * | callback | ) |
添加超时时的回调类对象指针,如果该回调类对象已经存在,则只是 使该对象处于打开可用状态
callback | {aio_callback*} 继承 aio_callback 的子类回调类对象, 当异步流关闭前会先调用此回调类对象中的 timeout_callback 接口 |
void acl::aio_stream::close | ( | void | ) |
关闭异步流
int acl::aio_stream::del_close_callback | ( | aio_callback * | callback = NULL | ) |
删除关闭时的回调类对象指针
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则删除所有的关闭回调对象 |
int acl::aio_stream::del_timeout_callback | ( | aio_callback * | callback = NULL | ) |
删除超时时的回调类对象指针
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则删除所有的超时回调对象 |
|
protectedvirtual |
通过此函数来动态释放只能在堆上分配的异步流类对象
被 acl::aio_istream, acl::aio_ostream, acl::aio_listen_stream, acl::aio_socket_stream , 以及 acl::aio_fstream 重载.
int acl::aio_stream::disable_close_callback | ( | aio_callback * | callback = NULL | ) |
禁止关闭的回调类对象,但并不从关闭对象集合中删除
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则禁止所有的关闭回调对象 |
int acl::aio_stream::disable_timeout_callback | ( | aio_callback * | callback = NULL | ) |
禁止超时的回调类对象,但并不从超时对象集合中删除
callback | {aio_callback*} 从 aio_callback 继承的子类对象指针, 若该值为空,则禁止所有的超时回调对象 |
int acl::aio_stream::enable_close_callback | ( | aio_callback * | callback = NULL | ) |
启用所有的回调对象被调用
callback | {aio_callback*} 启用指定的回调对象,如果该值为空, 则启用所有的关闭回调对象 |
int acl::aio_stream::enable_timeout_callback | ( | aio_callback * | callback = NULL | ) |
启用所有的回调对象被调用
callback | {aio_callback*} 启用指定的回调对象,如果该值为空, 则启用所有的超时回调对象 |
ACL_ASTREAM* acl::aio_stream::get_astream | ( | void | ) | const |
获得异步流对象 ACL_ASTREAM
aio_handle& acl::aio_stream::get_handle | ( | void | ) | const |
获得异步流事件句柄
stream_hook* acl::aio_stream::get_hook | ( | void | ) | const |
获得当前注册的流读写对象
const char* acl::aio_stream::get_local | ( | bool | full = false | ) | const |
获得连接的本地地址
full | {bool} 是否获得完整地址,即:IP:PORT,如果该参数 为 false,则仅返回 IP,否则返回 IP:PORT |
const char* acl::aio_stream::get_peer | ( | bool | full = false | ) | const |
获得远程连接的地址
full | {bool} 是否获得完整地址,即:IP:PORT,如果该参数 为 false,则仅返回 IP,否则返回 IP:PORT |
int acl::aio_stream::get_socket | ( | void | ) | const |
获得异步流中的 SOCKET 描述符
ACL_VSTREAM* acl::aio_stream::get_vstream | ( | void | ) | const |
获得异步流对象中的同步流对象 ACL_VSTREAM
|
protected |
子类应在创建成功后调用该函数通知基类增加异步流句柄数, 同时 hook 流关闭及流超时时的回调过程
stream_hook* acl::aio_stream::remove_hook | ( | void | ) |
删除当前注册的流读写对象并返回该对象,恢复缺省的读写过程
stream_hook* acl::aio_stream::setup_hook | ( | stream_hook * | hook | ) |
注册读写流对象,内部自动调用 hook->open 过程,如果成功,则返回之前注册
的对象(可能为NULL),若失败则返回与输入参数相同的指针,应用可以通过判断 返回值与输入值是否相同来判断注册流对象是否成功 xxx: 在调用此方法前必须保证流连接已经创建
hook | {stream_hook*} 非空对象指针 |
|
inline |
在文件 aio_stream.hpp 第 188 行定义.
|
protected |
在文件 aio_stream.hpp 第 241 行定义.
|
protected |
在文件 aio_stream.hpp 第 243 行定义.
|
protected |
在文件 aio_stream.hpp 第 269 行定义.
|
protected |
在文件 aio_stream.hpp 第 242 行定义.