acl  3.5.3.0
acl::queue_manager类 参考

#include <queue_manager.hpp>

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

Public 成员函数

 queue_manager (const char *home, const char *queueName, unsigned sub_width=2)
 
 ~queue_manager ()
 
const char * get_queueName () const
 
const char * get_home () const
 
queue_filecreate_file (const char *extName)
 
queue_fileopen_file (const char *path, bool no_cache=true)
 
bool close_file (queue_file *fp)
 
bool delete_file (queue_file *fp)
 
bool rename_extname (queue_file *fp, const char *extName)
 
bool move_file (queue_file *fp, const char *queueName, const char *extName)
 
bool move_file (queue_file *fp, queue_manager *toQueue, const char *extName)
 
bool remove (queue_file *fp)
 
bool busy (const char *fileName)
 
queue_filecache_find (const char *key)
 
bool cache_add (queue_file *fp)
 
bool cache_del (const char *key)
 
bool scan_open (bool scanSub=true)
 
void scan_close ()
 
queue_filescan_next (void)
 

静态 Public 成员函数

static bool parse_filePath (const char *filePath, acl::string *home, string *queueName, string *queueSub, string *partName, string *extName)
 
static bool parse_fileName (const char *fileName, acl::string *partName, string *extName)
 
static bool parse_path (const char *path, acl::string *home, string *queueName, acl::string *queueSub)
 
static unsigned int hash_queueSub (const char *partName, unsigned width)
 

额外继承的成员函数

- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

详细描述

在文件 queue_manager.hpp14 行定义.

构造及析构函数说明

◆ queue_manager()

acl::queue_manager::queue_manager ( const char *  home,
const char *  queueName,
unsigned  sub_width = 2 
)

队列对象的构造函数

参数
home{const char*} 队列的根目录
queueName{const char*} 该队列对象的队列名称

◆ ~queue_manager()

acl::queue_manager::~queue_manager ( )

成员函数说明

◆ busy()

bool acl::queue_manager::busy ( const char *  fileName)

检查所给文件名是否正在被使用

参数
fileName{const char*} 文件名
返回
{bool} 是否被使用

◆ cache_add()

bool acl::queue_manager::cache_add ( queue_file fp)

向队列对象的缓存中添加某个队列文件对象

参数
fp{queue_file*} 队列文件对象
返回
{bool} 添加是否成功, 若失败则说明该对象或其对应的键值 已经存在于缓存中

◆ cache_del()

bool acl::queue_manager::cache_del ( const char *  key)

从队列对象的缓存中删除某个队列文件对象

参数
key{const char*} 队列文件对象的键值
返回
{bool} 删除是否成功, 若失败则说明该队列文件对象不存在

◆ cache_find()

queue_file* acl::queue_manager::cache_find ( const char *  key)

在队列对象的缓存中查找某个队列文件对象

参数
key{const char*} 队列文件的部分文件名(不含路径及扩展名)
返回
{queue_file*} 返回 NULL 则表示未查到

◆ close_file()

bool acl::queue_manager::close_file ( queue_file fp)

关闭队列文件句柄, 并释放该文件对象,并不删除文件

参数
fp{queue_file*} 队列文件对象
返回
{bool} 关闭是否成功

◆ create_file()

queue_file* acl::queue_manager::create_file ( const char *  extName)

创建队列文件

参数
extName{const char*} 队列文件扩展名
返回
{queue_file*} 队列文件对象, 永远非NULL, 该返回值 为动态创建的, 所以用完后需要 delete 以释放其所占内存

◆ delete_file()

bool acl::queue_manager::delete_file ( queue_file fp)

从磁盘上删除队列文件, 并释放该文件对象

参数
fp{queue_file*} 队列文件对象
返回
{bool} 删除文件是否成功

◆ get_home()

const char* acl::queue_manager::get_home ( ) const

获得队列根目录

返回
{const char*}

◆ get_queueName()

const char* acl::queue_manager::get_queueName ( ) const

获得队列名

返回
{const char*}

◆ hash_queueSub()

static unsigned int acl::queue_manager::hash_queueSub ( const char *  partName,
unsigned  width 
)
static

根据部分文件名(不含目录及扩展名)计算出其队列子目录路径(以数字表示)

参数
partName{const char*} 部分文件名
width{unsigned} 队列二级目录的个数
返回
{unsigned int} 队列子目录路径(以数字表示)

◆ move_file() [1/2]

bool acl::queue_manager::move_file ( queue_file fp,
const char *  queueName,
const char *  extName 
)

将队列文件移至目标队列中, 移动成功后, 文件对象内部内容将会发生改变

参数
fp{queue_file*} 队列文件对象
queueName{const char*} 目标队列名
extName{const char*} 文件扩展名
返回
{bool} 移动队列文件是否成功, 如果移动失败, 则调用者应用调用 close_file 关闭该队列文件对象, 该文件将会被定时扫描任务移走

◆ move_file() [2/2]

bool acl::queue_manager::move_file ( queue_file fp,
queue_manager toQueue,
const char *  extName 
)

将一个队列文件对象移至目标队列对象中

参数
fp{queue_file*} 队列文件对象
toQueue{queue_manager*} 目标队列对象
extName{const char*} 文件扩展名
返回
{bool} 移动队列文件是否成功, 如果移动失败, 则调用者应用调用 close_file 关闭该队列文件对象, 该文件将会被定时扫描任务移走

◆ open_file()

queue_file* acl::queue_manager::open_file ( const char *  path,
bool  no_cache = true 
)

打开磁盘上存在的队列文件用于读/写

参数
path{const char*} 队列文件名
no_cache{bool} 为 true 时,要求在缓存中该文件对应的 KEY 必须不存在,如果存在则返回 NULL 表示该文件正被锁定; 当该参数为 false 时,则可以直接使用缓存中的对象
返回
{queue_file*} 队列文件对象, 出错或不存在则返回 NULL

◆ parse_fileName()

static bool acl::queue_manager::parse_fileName ( const char *  fileName,
acl::string partName,
string extName 
)
static

根据文件名称(含扩展名但不含路径), 分析出文件名(不含路径及扩展名), 和文件扩展名称

◆ parse_filePath()

static bool acl::queue_manager::parse_filePath ( const char *  filePath,
acl::string home,
string queueName,
string queueSub,
string partName,
string extName 
)
static

根据文件路径分析出队列名, 文件名(不含路径及扩展名部分), 文件扩展名

参数
filePath{const char*} 文件全路径名
home{acl::string*} 存储文件所在的根目录
queueName{acl::string*} 存储文件所在的队列名
queueSub{acl::string*} 存储文件的队列子目录
partName{acl::string*} 存储文件的文件名部分(不含路径及扩展名)
extName{acl::string*} 存储文件的扩展名部分

◆ parse_path()

static bool acl::queue_manager::parse_path ( const char *  path,
acl::string home,
string queueName,
acl::string queueSub 
)
static

分析路径, 从中提取出队列名称

◆ remove()

bool acl::queue_manager::remove ( queue_file fp)

从磁盘上删除本队列文件, 删除成功后该队列文件句柄已经被删除, 不可再用, 即使删除文件失败, 该队列文件对象也被释放, 只是从磁盘上删除该文件失败, 所以调用此函数后 fp 不能再次使用

参数
fp{queue_file*}
返回
{bool} 删除是否成功

◆ rename_extname()

bool acl::queue_manager::rename_extname ( queue_file fp,
const char *  extName 
)

修改文件的扩展名

参数
fp{queue_file*} 队列文件对象
extName{const char*} 新的扩展名
返回
{bool} 修改文件扩展名是否成功

◆ scan_close()

void acl::queue_manager::scan_close ( )

关闭扫描队列

◆ scan_next()

queue_file* acl::queue_manager::scan_next ( void  )

获得磁盘队列中的下一个队列文件, 若扫描完毕则返回空

返回
{queue_file*} 扫描的队列文件对象, 返回空则表示扫描完毕 或出错,非空对象一定要在用完后 delete 以释放内部分配的资源

◆ scan_open()

bool acl::queue_manager::scan_open ( bool  scanSub = true)

打开磁盘扫描队列

参数
scanSub{bool} 是否递归扫描子目录
返回
{bool} 打开队列是否成功

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