acl/lib_acl_cpp/src/redis/redis_connection.cpp

102 lines
1.8 KiB
C++
Raw Normal View History

#include "acl_stdafx.hpp"
#include "acl_cpp/stdlib/string.hpp"
#include "acl_cpp/stdlib/snprintf.hpp"
#include "acl_cpp/redis/redis_client.hpp"
#include "acl_cpp/redis/redis_connection.hpp"
namespace acl
{
redis_connection::redis_connection()
: redis_command(NULL)
{
}
redis_connection::redis_connection(redis_client* conn)
: redis_command(conn)
{
}
redis_connection::redis_connection(redis_client_cluster* cluster, size_t max_conns)
: redis_command(cluster, max_conns)
{
}
redis_connection::~redis_connection()
{
}
bool redis_connection::auth(const char* passwd)
{
const char* argv[2];
size_t lens[2];
argv[0] = "AUTH";
lens[0] = sizeof("AUTH") - 1;
argv[1] = passwd;
lens[1] = strlen(passwd);
build_request(2, argv, lens);
return check_status();
}
bool redis_connection::select(int dbnum)
{
const char* argv[2];
size_t lens[2];
argv[0] = "SELECT";
lens[0] = strlen(argv[0]);
char buf[21];
2015-03-29 19:27:41 +08:00
safe_snprintf(buf, sizeof(buf), "%d", dbnum);
argv[1] = buf;
lens[1] = strlen(argv[1]);
build_request(2, argv, lens);
return check_status();
}
bool redis_connection::ping()
{
const char* argv[1];
size_t lens[1];
argv[0] = "PING";
lens[0] = strlen(argv[0]);
build_request(1, argv, lens);
return check_status("PONG");
}
bool redis_connection::echo(const char* s)
{
const char* argv[2];
size_t lens[2];
argv[0] = "ECHO";
lens[0] = strlen(argv[0]);
argv[1] = s;
lens[1] = strlen(argv[1]);
string buf;
build_request(2, argv, lens);
return get_string(buf) >= 0 ? true : false;
}
bool redis_connection::quit()
{
const char* argv[1];
size_t lens[1];
argv[0] = "QUIT";
lens[0] = strlen(argv[0]);
build_request(1, argv, lens);
return check_status();
}
} // namespace acl