| 232 | } |
| 233 | |
| 234 | bool queue_manager::parse_path(const char* path, string* home, |
| 235 | string* queueName, string* queueSub) |
| 236 | { |
| 237 | if (path == NULL || *path == 0) { |
| 238 | logger_error("path invalid!"); |
| 239 | return false; |
| 240 | } |
| 241 | |
| 242 | /* WINDOWS ֧�� '/' �� '\\' ���ַָ��� */ |
| 243 | // ���ݸ�ʽ: /home/queueName/queueSub |
| 244 | ACL_ARGV *argv = acl_argv_split(path, "/\\"); |
| 245 | if (argv->argc < 3) { |
| 246 | logger_error("path(%s) invalid", path); |
| 247 | acl_argv_free(argv); |
| 248 | return false; |
| 249 | } |
| 250 | |
| 251 | // ȡ��home |
| 252 | home->clear(); |
| 253 | // �����һ���ַ�Ϊ PATH_SEP ����Ҫ���� |
| 254 | if (*path == PATH_SEP) { |
| 255 | home->push_back(PATH_SEP); |
| 256 | } |
| 257 | *home += argv->argv[argv->argc - 3]; |
| 258 | |
| 259 | // ȡ�ö����� |
| 260 | *queueName = argv->argv[argv->argc - 2]; |
| 261 | // ȡ�ö�����Ŀ¼�� |
| 262 | *queueSub = argv->argv[argv->argc - 1]; |
| 263 | acl_argv_free(argv); |
| 264 | return true; |
| 265 | } |
| 266 | |
| 267 | unsigned int queue_manager::hash_queueSub(const char* partName, unsigned width) |
| 268 | { |
nothing calls this directly
no test coverage detected