acl
3.5.3.0
|
#include <stream.hpp>
Public 成员函数 | |
stream (void) | |
virtual | ~stream (void)=0 |
bool | close (void) |
bool | eof (void) const |
void | clear_eof (void) |
bool | opened (void) const |
ACL_VSTREAM * | get_vstream (void) const |
ACL_VSTREAM * | unbind (void) |
bool | set_ctx (void *ctx, const char *key=NULL, bool replace=true) |
void * | get_ctx (const char *key=NULL) const |
void * | del_ctx (const char *key=NULL) |
void | set_rw_timeout (int n) |
void | set_time_unit (time_unit_t unit) |
int | get_rw_timeout (void) const |
stream_hook * | setup_hook (stream_hook *hook) |
stream_hook * | get_hook (void) const |
stream_hook * | remove_hook (void) |
string & | get_buf (void) |
dbuf_pool & | get_dbuf (void) |
Protected 成员函数 | |
void | open_stream (bool is_file=false) |
void | reopen_stream (bool is_file=false) |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
Protected 属性 | |
stream_hook * | hook_ |
ACL_VSTREAM * | stream_ |
string * | buf_ |
dbuf_pool * | dbuf_ |
void * | default_ctx_ |
std::map< string, void * > * | ctx_table_ |
bool | eof_ |
bool | opened_ |
在文件 stream.hpp 第 24 行定义.
acl::stream::stream | ( | void | ) |
|
pure virtual |
void acl::stream::clear_eof | ( | void | ) |
清除流结束标志位,即将 eof_ 标志位置为 false
bool acl::stream::close | ( | void | ) |
调用本函数关闭流连接
void* acl::stream::del_ctx | ( | const char * | key = NULL | ) |
删除流中绑定的对象
key | {const char*} 非空时删除对应该 key 的 ctx 对象,否则删除 缺省的 ctx 对象 |
bool acl::stream::eof | ( | void | ) | const |
判断流是否已经结束
string& acl::stream::get_buf | ( | void | ) |
因为 stream 的生命周期较长,使用者使用 stream 对象中的内部缓存区可以 适当减少缓存区的频繁创建与释放
void* acl::stream::get_ctx | ( | const char * | key = NULL | ) | const |
获得与流绑定的对象
key | {const char* key} 非空时使用该 key 查询对应的 ctx 对象, 否则返回缺省的 ctx 对象 |
stream_hook* acl::stream::get_hook | ( | void | ) | const |
获得当前注册的流读写对象
int acl::stream::get_rw_timeout | ( | void | ) | const |
获得当前流的读写超时时间
ACL_VSTREAM* acl::stream::get_vstream | ( | void | ) | const |
获得当前流的 ACL_VSTREAM 流对象
|
protected |
打开流对象,如果流已经打开,则不会重复打开
bool acl::stream::opened | ( | void | ) | const |
当前流是否处理打开状态
stream_hook* acl::stream::remove_hook | ( | void | ) |
删除当前注册的流读写对象并返回该对象,恢复缺省的读写过程
|
protected |
重新打开流对象,如果流已经打开则先释放流对象再打开
bool acl::stream::set_ctx | ( | void * | ctx, |
const char * | key = NULL , |
||
bool | replace = true |
||
) |
设置流的绑定对象
ctx | {void*} |
key | {const char* } 标识该 ctx 的键 |
replace | {bool} 当对应的 KEY 存在时是否允许覆盖 |
void acl::stream::set_rw_timeout | ( | int | n | ) |
设置流的读写超时时间,只有当内部流对象建立后调用本方法才有效
n | {int} 超时时间,该值 > 0 则启用超时检测过程,否则将会一直阻塞直到 可读或出错,该值的单位取决 于第二个参数 |
void acl::stream::set_time_unit | ( | time_unit_t | unit | ) |
设置内部超时时间单位类型,只有当内部流对象建立后调用本方法才有效
unit | {time_unit_t} 时间单位类型 |
stream_hook* acl::stream::setup_hook | ( | stream_hook * | hook | ) |
注册读写流对象,内部会自动调用 hook->open 过程,如果成功,则返回之前注册的对象 (可能为NULL),若失败则返回与输入参数相同的指针,应用可以通过判断返回值与输入值 是否相同来判断注册流对象是否成功 xxx: 在调用此方法前必须保证流连接已经创建
hook | {stream_hook*} 非空对象指针 |
ACL_VSTREAM* acl::stream::unbind | ( | void | ) |
解绑 ACL_VSTREAM 与流对象的绑定关系,同时将 ACL_VSTREAM 返回 给用户,即将该 ACL_VSTREAM的管理权交给用户,本流对象在释放时 不会关闭该 ACL_VSTREAM ,但用户接管该 ACL_VSTREAM 后用完后 必须将其关闭;解绑后除了 close/open 的调用有意义外,其它的调用 (包括流对象读写在内)都无意义
|
protected |
在文件 stream.hpp 第 163 行定义.
|
protected |
在文件 stream.hpp 第 167 行定义.
|
protected |
在文件 stream.hpp 第 164 行定义.
|
protected |
在文件 stream.hpp 第 166 行定义.
|
protected |
在文件 stream.hpp 第 169 行定义.
|
protected |
在文件 stream.hpp 第 161 行定义.
|
protected |
在文件 stream.hpp 第 170 行定义.
|
protected |
在文件 stream.hpp 第 162 行定义.