8 #ifndef CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
9 #define CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
13 #include <fmt/format.h>
15 #pragma GCC diagnostic push
16 #pragma GCC diagnostic ignored "-Wpedantic"
18 #include <sw/redis++/redis++.h>
20 #pragma GCC diagnostic pop
50 const std::string& db_endpoint,
51 const timeval& db_timeout);
55 const std::string& state,
56 const std::string& substate);
59 void Set(
const std::string& key,
67 std::string m_db_endpoint;
69 bool m_connected{
false};
70 std::unique_ptr<::sw::redis::Redis> m_runtime_db;
77 std::ostringstream os;
81 LOG4CPLUS_DEBUG(m_logger, fmt::format(
"Writing attribute <{}> ...", m_prefix+key));
82 m_runtime_db->set(m_prefix+key, os.str());
83 LOG4CPLUS_DEBUG(m_logger, fmt::format(
"Writing attribute <{}> finished !", key));
84 }
catch (const ::sw::redis::Error& err) {
85 LOG4CPLUS_ERROR(m_logger, fmt::format(
"Problems writing attribute <{}>: <> !",
87 throw std::runtime_error (fmt::format(
"Problems writing attribute <{}>: <> !", key,
Definition: dbInterfaceRedis.hpp:42
void SetStates(const std::string &prefix, const std::string &state, const std::string &substate)
Definition: dbInterfaceRedis.cpp:75
DbInterfaceRedis & operator=(const DbInterfaceRedis &)=delete
Disable assignment operator.
bool IsConnected() const
Definition: dbInterfaceRedis.hpp:53
void BatchSet(const utils::bat::DbVector &vec)
Definition: dbInterfaceRedis.cpp:93
DbInterfaceRedis(const std::string &prefix, const std::string &db_endpoint, const timeval &db_timeout)
Definition: dbInterfaceRedis.cpp:24
DbInterfaceRedis(const DbInterfaceRedis &)=delete
Disable copy constructor.
void Set(const std::string &key, const T &value)
Definition: dbInterfaceRedis.hpp:76
log4cplus::Logger & Logger()
Definition: defines.cpp:13
Definition: config.cpp:31
const int64_t REDIS_SOCKET_TIMEOUT_MS
Definition: dbInterfaceRedis.hpp:37
const int64_t REDIS_WAIT_TIMEOUT_MS
Definition: dbInterfaceRedis.hpp:33
std::vector< DbPair > DbVector
Definition: config.hpp:81
const std::size_t REDIS_CONNECTION_POOL_SIZE
Definition: dbInterfaceRedis.hpp:29
const int64_t REDIS_CONNECTION_POOL_CONN_LIFETIME_MS
Definition: dbInterfaceRedis.hpp:31