acl
3.5.3.0
|
#include <stream_hook.hpp>
Public 成员函数 | |
stream_hook (void) | |
virtual int | read (void *buf, size_t len)=0 |
virtual int | send (const void *buf, size_t len)=0 |
virtual bool | open (ACL_VSTREAM *s)=0 |
virtual bool | on_close (bool alive) |
virtual void | destroy (void) |
Protected 成员函数 | |
virtual | ~stream_hook (void) |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
流对象 IO 注册回调类,子类需实现该类中的虚方法,子类对象通过 setup_hook 注册, 然后该子类对象中的 IO 过程作为 stream/aio_stream 类对象的底层 IO 过程被使用; 如果不调用 stream/aio_stream 的 setup_hook 注册过程,则 stream/aio_stream 类对象的底层 IO 过程为默认过程 XXX: 本纯虚类被声明为堆对象类,建议子类也应该声明为堆对象类
在文件 stream_hook.hpp 第 14 行定义.
|
inline |
在文件 stream_hook.hpp 第 17 行定义.
|
inlineprotectedvirtual |
在文件 stream_hook.hpp 第 57 行定义.
|
inlinevirtual |
当 stream/aio_stream 对象需要释放 stream_hook 子类对象时调用此方法
被 acl::mbedtls_io , 以及 acl::polarssl_io 重载.
在文件 stream_hook.hpp 第 54 行定义.
|
inlinevirtual |
当 stream/aio_stream 流对象关闭前将会回调该函数以便于子类实例做一些善后工作
alive | {bool} 该连接是否依然正常 |
被 acl::mbedtls_io , 以及 acl::polarssl_io 重载.
在文件 stream_hook.hpp 第 49 行定义.
|
pure virtual |
在 stream/aio_stream 的 setup_hook 内部将会调用 stream_hook::open 过程,以便于子类对象用来初始化一些数据及会话
s | {ACL_VSTREAM*} 在 setup_hook 内部调用该方法将创建的流对象 作为参数传入 |
在 acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.
|
pure virtual |
读数据接口
buf | {void*} 读缓冲区地址,读到的数据将存放在该缓冲区中 |
len | {size_t} buf 缓冲区大小 |
在 acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.
|
pure virtual |
发送数据接口
buf | {const void*} 发送缓冲区地址 |
len | {size_t} buf 缓冲区中数据的长度(必须 > 0) |
在 acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.