25 #ifndef CARGO_SQLITE_TO_KVSTORE_VISITOR_HPP
26 #define CARGO_SQLITE_TO_KVSTORE_VISITOR_HPP
51 void visit(
const std::string& name,
const T& value)
66 template<typename T, typename std::enable_if<isStreamableOut<T>::value,
int>::type = 0>
72 template<typename T, typename std::enable_if<isVisitable<T>::value,
int>::type = 0>
76 value.accept(visitor);
79 template<typename T, typename std::enable_if<std::is_enum<T>::value,
int>::type = 0>
82 setInternal(name,
static_cast<const typename std::underlying_type<T>::type
>(value));
95 for (
auto it = begin; it != end; ++it) {
96 const std::string k =
key(name, std::to_string(i));
104 void setInternal(
const std::string& name,
const std::vector<T>& values)
109 template<
typename T, std::
size_t N>
110 void setInternal(
const std::string& name,
const std::array<T, N>& values) {
115 void setInternal(
const std::string& name,
const std::map<std::string, V>& values) {
121 for (
const auto& it : values) {
122 const std::string k =
key(name, i++);
130 void setInternal(
const std::string& name,
const std::initializer_list<T>& values)
135 template<typename T, typename std::enable_if<isLikeTuple<T>::value,
int>::type = 0>
169 #endif // CARGO_SQLITE_TO_KVSTORE_VISITOR_HPP
void remove(const std::string &key)
Removes values corresponding to the passed key.
Definition: kvstore.cpp:275
Internal configuration helper.
A guard struct for thread synchronization and transaction management.
Definition: kvstore.hpp:49
void setRangeInternal(const std::string &name, const I &begin, const I &end, const size_t size)
Definition: to-kvstore-visitor.hpp:86
Definition: to-kvstore-visitor.hpp:39
SetTupleVisitor(ToKVStoreVisitor &visitor)
Definition: to-kvstore-visitor.hpp:152
Declaration of a class for key-value storage in a sqlite3 database.
std::string toString(const T &value)
Definition: kvstore-visitor-utils.hpp:44
Definition: kvstore.hpp:43
void visit(T &value)
Definition: to-kvstore-visitor.hpp:155
ToKVStoreVisitor(const ToKVStoreVisitor &visitor, const std::string &prefix)
Definition: to-kvstore-visitor.hpp:60
void visit(const std::string &name, const T &value)
Definition: to-kvstore-visitor.hpp:51
void setInternal(const std::string &name, const T &values)
Definition: to-kvstore-visitor.hpp:136
ToKVStoreVisitor(KVStore &store, const std::string &prefix)
Definition: to-kvstore-visitor.hpp:42
KVStore & mStore
Definition: to-kvstore-visitor.hpp:57
void setInternal(const std::string &name, const T &value)
Definition: to-kvstore-visitor.hpp:67
std::string key(const Arg1 &a1, const Args &...args)
Concatenates all parameters into one std::string.
Definition: kvstore-visitor-utils.hpp:60
void set(const std::string &key, const std::string &value)
Stores a single value corresponding to the passed key.
Definition: kvstore.cpp:153
void setInternal(const std::string &name, const std::initializer_list< T > &values)
Definition: to-kvstore-visitor.hpp:130
void setInternal(const std::string &name, const std::vector< T > &values)
Definition: to-kvstore-visitor.hpp:104
ToKVStoreVisitor & mVisitor
Definition: to-kvstore-visitor.hpp:162
void setInternal(const std::string &name, const std::map< std::string, V > &values)
Definition: to-kvstore-visitor.hpp:115
KVStore visitors utilities.
Definition: to-kvstore-visitor.hpp:149
Check whether type is accepted by streaming operators.
std::string mKeyPrefix
Definition: to-kvstore-visitor.hpp:58
ToKVStoreVisitor & operator=(const ToKVStoreVisitor &)=delete
size_t idx
Definition: to-kvstore-visitor.hpp:163
void commit()
Definition: kvstore.cpp:126
void visitFields(T &t, F f, A...args)
Definition: visit-fields.hpp:58
void setInternal(const std::string &name, const std::array< T, N > &values)
Definition: to-kvstore-visitor.hpp:110