acl  3.5.3.0
acl::aio_socket_stream类 参考

#include <aio_socket_stream.hpp>

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

Public 成员函数

 aio_socket_stream (aio_handle *handle, ACL_ASTREAM *stream, bool opened=false)
 
 aio_socket_stream (aio_handle *handle, int fd)
 
void add_open_callback (aio_open_callback *callback)
 
int del_open_callback (aio_open_callback *callback=NULL)
 
int disable_open_callback (aio_open_callback *callback=NULL)
 
int enable_open_callback (aio_open_callback *callback=NULL)
 
bool is_opened (void) const
 
- Public 成员函数 继承自 acl::aio_istream
 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_istreamset_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_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)
 
- Public 成员函数 继承自 acl::aio_ostream
 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 成员函数

static aio_socket_streamopen (aio_handle *handle, const char *addr, int timeout)
 

Protected 成员函数

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

额外继承的成员函数

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

构造及析构函数说明

◆ aio_socket_stream() [1/2]

acl::aio_socket_stream::aio_socket_stream ( aio_handle handle,
ACL_ASTREAM stream,
bool  opened = false 
)

构造函数,创建网络异步客户端流

参数
handle{aio_handle*} 异步引擎句柄
stream{ACL_ASTREAM*} 非阻塞流
opened{bool} 该流是否已经与服务端正常建立了连接,如果是则自动 hook 读写过程及关闭/超时过程,否则仅 hook 关闭/超时过程

◆ aio_socket_stream() [2/2]

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

构造函数,创建网络异步客户端流,并 hook 读写过程及关闭/超时过程

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

◆ ~aio_socket_stream()

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

成员函数说明

◆ add_open_callback()

void acl::aio_socket_stream::add_open_callback ( aio_open_callback callback)

添加针对 open 函数的回调过程

参数
callback{aio_open_callback*} 回调函数

◆ del_open_callback()

int acl::aio_socket_stream::del_open_callback ( aio_open_callback callback = NULL)

从 open 回调对象集合中删除

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

◆ destroy()

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

通过此函数来动态释放只能在堆上分配的异步流类对象

重载 acl::aio_istream .

◆ disable_open_callback()

int acl::aio_socket_stream::disable_open_callback ( aio_open_callback callback = NULL)

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

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

◆ enable_open_callback()

int acl::aio_socket_stream::enable_open_callback ( aio_open_callback callback = NULL)

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

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

◆ hook_open()

void acl::aio_socket_stream::hook_open ( void  )
protected

注册流连接成功的回调过程

◆ is_opened()

bool acl::aio_socket_stream::is_opened ( void  ) const

针对 open 过程,判断是否已经连接成功

返回
{bool} 返回 true 表示连接成功,否则表示还连接成功

◆ open()

static aio_socket_stream* acl::aio_socket_stream::open ( aio_handle handle,
const char *  addr,
int  timeout 
)
static

打开与远程服务器的连接,并自动 hook 流的关闭、超时以及连接成功 时的回调处理过程

参数
handle{aio_handle*} 异步引擎句柄
addr{const char*} 远程服务器的地址,地址格式为: 针对TCP:IP:Port 或 针对域套接口:{filePath}
timeout{int} 连接超时时间(秒)
返回
{bool} 如果连接立即返回失败则该函数返回 false,如果返回 true 只是表示正处于连接过程中,至于连接是否超时或连接是否失败 应通过回调函数来判断

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