acl  3.5.3.0
acl::stream_hook类 参考abstract

#include <stream_hook.hpp>

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

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.hpp14 行定义.

构造及析构函数说明

◆ stream_hook()

acl::stream_hook::stream_hook ( void  )
inline

在文件 stream_hook.hpp17 行定义.

17 {}

◆ ~stream_hook()

virtual acl::stream_hook::~stream_hook ( void  )
inlineprotectedvirtual

在文件 stream_hook.hpp57 行定义.

57 {}

成员函数说明

◆ destroy()

virtual void acl::stream_hook::destroy ( void  )
inlinevirtual

当 stream/aio_stream 对象需要释放 stream_hook 子类对象时调用此方法

acl::mbedtls_io , 以及 acl::polarssl_io 重载.

在文件 stream_hook.hpp54 行定义.

54 {}

◆ on_close()

virtual bool acl::stream_hook::on_close ( bool  alive)
inlinevirtual

当 stream/aio_stream 流对象关闭前将会回调该函数以便于子类实例做一些善后工作

参数
alive{bool} 该连接是否依然正常
返回
{bool}

acl::mbedtls_io , 以及 acl::polarssl_io 重载.

在文件 stream_hook.hpp49 行定义.

49 { (void) alive; return true; }

◆ open()

virtual bool acl::stream_hook::open ( ACL_VSTREAM s)
pure virtual

在 stream/aio_stream 的 setup_hook 内部将会调用 stream_hook::open 过程,以便于子类对象用来初始化一些数据及会话

参数
s{ACL_VSTREAM*} 在 setup_hook 内部调用该方法将创建的流对象 作为参数传入
返回
{bool} 如果子类实例返回 false,则 setup_hook 调用失败且会恢复原样

acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.

◆ read()

virtual int acl::stream_hook::read ( void *  buf,
size_t  len 
)
pure virtual

读数据接口

参数
buf{void*} 读缓冲区地址,读到的数据将存放在该缓冲区中
len{size_t} buf 缓冲区大小
返回
{int} 读到字节数,当返回值 < 0 时表示出错

acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.

◆ send()

virtual int acl::stream_hook::send ( const void *  buf,
size_t  len 
)
pure virtual

发送数据接口

参数
buf{const void*} 发送缓冲区地址
len{size_t} buf 缓冲区中数据的长度(必须 > 0)
返回
{int} 写入的数据长度,返回值 <0 时表示出错

acl::mbedtls_io , 以及 acl::polarssl_io 内被实现.


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