7#ifndef CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
8#define CORE_UTILS_BAT_DB_INTERFACE_REDIS_HPP_
12#include <fmt/format.h>
14#pragma GCC diagnostic push
15#pragma GCC diagnostic ignored "-Wpedantic"
17#include <sw/redis++/redis++.h>
19#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;
72 log4cplus::Logger m_logger;
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
DbInterfaceRedis(const std::string &prefix, const std::string &db_endpoint, const timeval &db_timeout)
Definition dbInterfaceRedis.cpp:22
DbInterfaceRedis(const DbInterfaceRedis &)=delete
Disable copy constructor.
void BatchSet(const ifw::core::utils::bat::DbVector &vec)
Definition dbInterfaceRedis.cpp:91
void Set(const std::string &key, const T &value)
Definition dbInterfaceRedis.hpp:76
bool IsConnected() const
Definition dbInterfaceRedis.hpp:53
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:73
Config class source file.
Definition config.cpp:26
const int64_t REDIS_WAIT_TIMEOUT_MS
Definition dbInterfaceRedis.hpp:33
const int64_t REDIS_CONNECTION_POOL_CONN_LIFETIME_MS
Definition dbInterfaceRedis.hpp:31
const int64_t REDIS_SOCKET_TIMEOUT_MS
Definition dbInterfaceRedis.hpp:37
const std::size_t REDIS_CONNECTION_POOL_SIZE
Definition dbInterfaceRedis.hpp:29
std::vector< DbPair > DbVector
Definition config.hpp:77