#include <queue_manager.hpp>
|
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) |
|
◆ 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 | ) |
|
向队列对象的缓存中添加某个队列文件对象
- 参数
-
- 返回
- {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 | ) |
|
关闭队列文件句柄, 并释放该文件对象,并不删除文件
- 参数
-
- 返回
- {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 | ) |
|
从磁盘上删除队列文件, 并释放该文件对象
- 参数
-
- 返回
- {bool} 删除文件是否成功
◆ get_home()
const char* acl::queue_manager::get_home |
( |
| ) |
const |
◆ get_queueName()
const char* acl::queue_manager::get_queueName |
( |
| ) |
const |
◆ 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]
将一个队列文件对象移至目标队列对象中
- 参数
-
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()
根据文件路径分析出队列名, 文件名(不含路径及扩展名部分), 文件扩展名
- 参数
-
◆ parse_path()
◆ remove()
bool acl::queue_manager::remove |
( |
queue_file * |
fp | ) |
|
从磁盘上删除本队列文件, 删除成功后该队列文件句柄已经被删除, 不可再用, 即使删除文件失败, 该队列文件对象也被释放, 只是从磁盘上删除该文件失败, 所以调用此函数后 fp 不能再次使用
- 参数
-
- 返回
- {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 | ) |
|
打开磁盘扫描队列
- 参数
-
- 返回
- {bool} 打开队列是否成功
该类的文档由以下文件生成: