acl/lib_acl_cpp/include/acl_cpp/redis/redis_command.hpp
2015-01-26 03:58:02 -08:00

55 lines
1.0 KiB
C++

#pragma once
#include "acl_cpp/acl_cpp_define.hpp"
namespace acl
{
class redis_client;
class redis_result;
/**
* redis 客户端命令类的纯虚父类
*/
class ACL_CPP_API redis_command
{
public:
redis_command(redis_client* conn = NULL);
virtual ~redis_command() = 0;
/**
* 在重复使用一个继承于 redis_command 的子类操作 redis 时,需要在下一次
* 调用前调用本方法以释放上次操作的临时对象
*/
void reset();
/**
* 在使用连接池方式时,通过本函数将从连接池获得的连接对象(redis_client)与
* redis 客户端命令进行关联
*/
void set_client(redis_client* conn);
/**
* 获得当前 redis 客户端命令的连接对象
* @return {redis_client*}
*/
redis_client* get_client() const
{
return conn_;
}
/**
* 获得本次 redis 操作过程的结果
* @return {redis_result*}
*/
const redis_result* get_result() const;
protected:
redis_client* conn_;
const redis_result** scan_keys(const char* cmd, const char* key,
int& cursor, size_t& size, const char* pattern,
const size_t* count);
};
} // namespace acl