NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
redis_result.hpp
浏览该文件的文档.
1#ifndef NEFORCE_DATABASE_REDIS_RESULT_HPP__
2#define NEFORCE_DATABASE_REDIS_RESULT_HPP__
3
10
11#ifdef NEFORCE_SUPPORT_HIREDIS
12# include <hiredis/hiredis.h>
14NEFORCE_BEGIN_NAMESPACE__
15
21
27
41struct NEFORCE_API redis_result final : idb_kv_result {
42private:
43 ::redisReply* result_ = nullptr;
44 size_type cursor_ = 0;
45 size_type rows_ = 0;
46
47 unique_ptr<vector<string>> column_names_;
49
50 size_type kv_cursor_ = 0;
51 bool is_array_ = false;
52
53 NEFORCE_NODISCARD string get_string() const;
54
55public:
62
71 explicit redis_result(::redisReply* reply);
72
78 ~redis_result() override;
79
84 NEFORCE_NODISCARD bool empty() const noexcept override {
85 return result_ == nullptr || (rows_ == 0 && kv_pairs_->empty());
86 }
87
95 NEFORCE_NODISCARD bool next() noexcept override;
96
104 NEFORCE_NODISCARD string_view key() const noexcept override;
105
112 NEFORCE_NODISCARD string_view value() const noexcept override;
113
120 NEFORCE_NODISCARD bool value_bool() const override;
121
128 NEFORCE_NODISCARD int64_t value_int64() const override;
129
136 NEFORCE_NODISCARD double value_double() const override;
137
145 NEFORCE_NODISCARD vector<string> value_array() const override;
146
153 NEFORCE_NODISCARD const vector<pair<string, string>>& value_hash() const override { return *kv_pairs_; }
154
159 NEFORCE_NODISCARD int type() const noexcept { return result_ != nullptr ? result_->type : -1; }
160
165 NEFORCE_NODISCARD bool is_nil() const noexcept { return result_ != nullptr && result_->type == REDIS_REPLY_NIL; }
166};
167 // Redis
169 // Database
171
172NEFORCE_END_NAMESPACE__
173#endif
174#endif // NEFORCE_DATABASE_REDIS_RESULT_HPP__
独占智能指针
动态大小数组容器
数据库抽象接口层
long long int64_t
64位有符号整数类型
basic_string_view< char > string_view
字符字符串视图
键值存储结果集抽象基类
size_t size_type
大小类型
存储两个值的元组对
int64_t value_int64() const override
获取64位整数值
const vector< pair< string, string > > & value_hash() const override
获取哈希表值
int type() const noexcept
获取Redis回复类型
redis_result(::redisReply *reply)
构造函数
string_view value() const noexcept override
获取当前值
redis_result()
默认构造函数
bool next() noexcept override
移动到下一个键值对
string_view key() const noexcept override
获取当前键
vector< string > value_array() const override
获取数组值
bool is_nil() const noexcept
检查是否为空值回复
bool empty() const noexcept override
检查结果集是否为空
~redis_result() override
析构函数
bool value_bool() const override
获取布尔值
double value_double() const override
获取浮点值