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 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 { return !result_ || (rows_ == 0 && kv_pairs_->empty()); }
85
93 NEFORCE_NODISCARD bool next() noexcept override;
94
102 NEFORCE_NODISCARD string_view key() const noexcept override;
103
110 NEFORCE_NODISCARD string_view value() const noexcept override;
111
118 NEFORCE_NODISCARD bool value_bool() const override;
119
126 NEFORCE_NODISCARD int64_t value_int64() const override;
127
134 NEFORCE_NODISCARD double value_double() const override;
135
143 NEFORCE_NODISCARD vector<string> value_array() const override;
144
151 NEFORCE_NODISCARD const vector<pair<string, string>>& value_hash() const override { return *kv_pairs_; }
152
157 NEFORCE_NODISCARD int type() const noexcept { return result_ ? result_->type : -1; }
158
163 NEFORCE_NODISCARD bool is_nil() const noexcept { return result_ && result_->type == REDIS_REPLY_NIL; }
164};
165 // Redis
167 // Database
169
170NEFORCE_END_NAMESPACE__
171#endif
172#endif // NEFORCE_DATABASE_REDIS_RESULT_HPP__
独占智能指针
动态大小数组容器
数据库抽象接口层
long long int64_t
64位有符号整数类型
basic_string_view< char > string_view
字符字符串视图
键值存储结果集抽象基类
size_t size_type
大小类型
存储两个值的元组对
NEFORCE_NODISCARD const vector< pair< string, string > > & value_hash() const override
获取哈希表值
NEFORCE_NODISCARD vector< string > value_array() const override
获取数组值
redis_result(::redisReply *reply)
构造函数
redis_result()
默认构造函数
NEFORCE_NODISCARD string_view key() const noexcept override
获取当前键
NEFORCE_NODISCARD bool next() noexcept override
移动到下一个键值对
NEFORCE_NODISCARD bool is_nil() const noexcept
检查是否为空值回复
NEFORCE_NODISCARD bool empty() const noexcept override
检查结果集是否为空
NEFORCE_NODISCARD double value_double() const override
获取浮点值
NEFORCE_NODISCARD int type() const noexcept
获取Redis回复类型
NEFORCE_NODISCARD int64_t value_int64() const override
获取64位整数值
NEFORCE_NODISCARD string_view value() const noexcept override
获取当前值
NEFORCE_NODISCARD bool value_bool() const override
获取布尔值
~redis_result() override
析构函数