9#ifndef CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
10#define CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
14#include <fmt/format.h>
16#pragma GCC diagnostic push
17#pragma GCC diagnostic ignored "-Wpedantic"
19#include <sw/redis++/redis++.h>
21#pragma GCC diagnostic pop
52 const std::string& db_endpoint,
53 const timeval& db_timeout);
57 const std::string& state,
58 const std::string& substate);
61 void Set(
const std::string& key,
69 std::string m_db_endpoint;
71 bool m_connected{
false};
72 std::unique_ptr<::sw::redis::Redis> m_runtime_db;
74 log4cplus::Logger m_logger;
79 std::ostringstream os;
83 LOG4CPLUS_DEBUG(m_logger, fmt::format(
"Writing attribute <{}> ...", m_prefix + key));
84 m_runtime_db->set(m_prefix + key, os.str());
85 LOG4CPLUS_DEBUG(m_logger, fmt::format(
"Writing attribute <{}> finished !", key));
86 }
catch (const ::sw::redis::Error& err) {
87 LOG4CPLUS_ERROR(m_logger, fmt::format(
"Problems writing attribute <{}>: <> !",
89 throw std::runtime_error (fmt::format(
"Problems writing attribute <{}>: <> !", key,
DbInterfaceRedis(const std::string &prefix, const std::string &db_endpoint, const timeval &db_timeout)
Definition dbInterfaceRedis.cpp:19
DbInterfaceRedis(const DbInterfaceRedis &)=delete
Disable copy constructor.
void BatchSet(const ifw::core::utils::bat::DbVector &vec)
Definition dbInterfaceRedis.cpp:88
void Set(const std::string &key, const T &value)
Definition dbInterfaceRedis.hpp:78
bool IsConnected() const
Definition dbInterfaceRedis.hpp:55
DbInterfaceRedis & operator=(const DbInterfaceRedis &)=delete
Disable assignment operator.
void SetStates(const std::string &prefix, const std::string &state, const std::string &substate)
Definition dbInterfaceRedis.cpp:70
const int64_t REDIS_WAIT_TIMEOUT_MS
Definition dbInterfaceRedis.hpp:35
const int64_t REDIS_CONNECTION_POOL_CONN_LIFETIME_MS
Definition dbInterfaceRedis.hpp:33
const int64_t REDIS_SOCKET_TIMEOUT_MS
Definition dbInterfaceRedis.hpp:39
const std::size_t REDIS_CONNECTION_POOL_SIZE
Definition dbInterfaceRedis.hpp:31
std::vector< DbPair > DbVector
Definition config.hpp:79