acl  3.5.3.0
acl::aio_ostream类 参考

#include <aio_ostream.hpp>

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

Public 成员函数

 aio_ostream (aio_handle *handle)
 
 aio_ostream (aio_handle *handle, int fd)
 
void add_write_callback (aio_callback *callback)
 
int del_write_callback (aio_callback *callback=NULL)
 
int disable_write_callback (aio_callback *callback=NULL)
 
int enable_write_callback (aio_callback *callback=NULL)
 
void write (const void *data, int len, long long int delay=0, aio_timer_writer *callback=NULL)
 
void format (const char *fmt,...) ACL_CPP_PRINTF(2
 
void void vformat (const char *fmt, va_list ap)
 
void write_wait (int timeout=0)
 
void disable_write (void)
 
- 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_ASTREAMget_astream (void) const
 
ACL_VSTREAMget_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_handleget_handle (void) const
 
stream_hooksetup_hook (stream_hook *hook)
 
stream_hookget_hook (void) const
 
stream_hookremove_hook (void)
 

Protected 成员函数

virtual ~aio_ostream (void)
 
virtual void destroy (void)
 
void hook_write (void)
 
- Protected 成员函数 继承自 acl::aio_stream
virtual ~aio_stream (void)
 
void hook_error (void)
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

友元

class aio_timer_writer
 

额外继承的成员函数

- 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_handlehandle_
 
ACL_ASTREAMstream_
 
stream_hookhook_
 
unsigned status_
 

详细描述

异步写数据流类定义,该类只能在堆上被实例化,在析构时需要调用 close 函数以释放该类对象

在文件 aio_ostream.hpp59 行定义.

构造及析构函数说明

◆ aio_ostream() [1/2]

acl::aio_ostream::aio_ostream ( aio_handle handle)

构造函数

参数
handle{aio_handle*} 异步事件引擎句柄

◆ aio_ostream() [2/2]

acl::aio_ostream::aio_ostream ( aio_handle handle,
int  fd 
)

构造函数,创建异步写流对象,并 hook 写过程及关闭/超时过程

参数
handle{aio_handle*} 异步事件引擎句柄
fd{int} 连接套接口句柄

◆ ~aio_ostream()

virtual acl::aio_ostream::~aio_ostream ( void  )
protectedvirtual

成员函数说明

◆ add_write_callback()

void acl::aio_ostream::add_write_callback ( aio_callback callback)

添加异可写时的回调类对象指针,如果该回调类对象已经存在,则只是 使该对象处于打开可用状态

参数
callback{aio_callback*} 继承 aio_callback 的子类回调类对象, 当异步流有数据时会先调用此回调类对象中的 write_callback 接口

◆ del_write_callback()

int acl::aio_ostream::del_write_callback ( aio_callback callback = NULL)

从写回调对象集合中删除

参数
callback{aio_callback*} 被删除的写回调对象, 若该值为空,则删除所有的回调写对象
返回
{int} 返回被从回调对象集合中删除的回调对象的个数

◆ destroy()

virtual void acl::aio_ostream::destroy ( void  )
protectedvirtual

释放动态类对象的虚函数

重载 acl::aio_stream .

acl::aio_socket_stream , 以及 acl::aio_fstream 重载.

◆ disable_write()

void acl::aio_ostream::disable_write ( void  )

禁止异步流的异步写状态,则将该异步流从异步引擎的监控 事件中移除,直到用户调用任何一个写操作时会自动打开异 步写状态(此时该流会重新被异步引擎监控)

◆ disable_write_callback()

int acl::aio_ostream::disable_write_callback ( aio_callback callback = NULL)

禁止回调对象类集合中的某个回调类对象,但并不从回调类对象 集合中删除,只是不被调用而已

参数
callback{aio_callback*} 被禁用的写回调对象, 若该值为空,则禁用所有的写回调对象
返回
{int} 返回被从回调对象集合中禁用的回调对象的个数

◆ enable_write_callback()

int acl::aio_ostream::enable_write_callback ( aio_callback callback = NULL)

启用所有的回调对象被调用

参数
callback{aio_callback*} 启用指定的写回调对象, 如果该值为空,则启用所有的写回调对象
返回
{int} 返回被启用的写回调对象的个数

◆ format()

void acl::aio_ostream::format ( const char *  fmt,
  ... 
)

格式化方式异步写数据,当完全写成功或出错或超时时会 调用用户注册的回调函数

参数
fmt{const char*} 格式字符串

◆ hook_write()

void acl::aio_ostream::hook_write ( void  )
protected

hook 写过程

◆ vformat()

void void acl::aio_ostream::vformat ( const char *  fmt,
va_list  ap 
)

格式化方式异步写数据,当完全写成功或出错或超时时会 调用用户注册的回调函数

参数
fmt{const char*} 格式字符串
ap{va_list} 数据值列表

◆ write()

void acl::aio_ostream::write ( const void *  data,
int  len,
long long int  delay = 0,
aio_timer_writer callback = NULL 
)

异步写规定字节数的数据,当完全写成功或出错或超时时会 调用用户注册的回调函数,在延迟异步写时,当在一个函数 内连续调用此过程时,每个延迟异步写操作会被加入延迟写 的队列中,以保证每个延迟异步写操作都可在各自的定时器 到达时被执行

参数
data{const void*} 数据地址
len{int} 数据长度
delay{int64} 如果该值 > 0 则采用延迟发送的模式(单位为微秒)
callback{aio_timer_writer*} 定时器到达时的回调函数类对象,

◆ write_wait()

void acl::aio_ostream::write_wait ( int  timeout = 0)

异步等待连接流可写,该函数设置异步流的写监听状态,当有可写时, 回调函数被触发,由用户自己负责数据的读取

参数
timeout{int} 写超时时间(秒),当该值为 0 时,则没有写超时

友元及相关函数文档

◆ aio_timer_writer

friend class aio_timer_writer
friend

在文件 aio_ostream.hpp173 行定义.


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