rad 6.2.0
Loading...
Searching...
No Matches
activityUpdateOldb.hpp
Go to the documentation of this file.
1
9#ifndef RAD_ACTIVITY_UPDATE_OLDB_HPP
10#define RAD_ACTIVITY_UPDATE_OLDB_HPP
11
12#include <rad/logger.hpp>
13#include <rad/activity.hpp>
14#include <rad/doubleMap.hpp>
16#include <rad/cii/oldbTypes.hpp>
17
18#include <string>
19#include <chrono>
20#include <vector>
21
22namespace rad {
23
39 public:
50 ActivityUpdateOldb(const std::string& id,
51 const std::string& logger_name,
53 std::chrono::seconds conn_timeout,
54 std::chrono::milliseconds period);
55 virtual ~ActivityUpdateOldb();
56
60 std::chrono::milliseconds GetPeriod();
61
66
70 void SetPeriod(const std::chrono::milliseconds period);
71
78 void SetOldbPrefix(const std::string& prefix);
79
85 void Run() override;
86
89
90 private:
98 template<typename T>
99 void WriteScalarToOldb(const std::string& key, rad::cii::OldbType& value) {
100 m_oldb_adapter.TrySet<T>(m_oldb_prefix + key, std::get<T>(value));
101 LOG4CPLUS_DEBUG(m_logger, "Writing to OLDB: " << m_oldb_prefix + key
102 << " = " << std::get<T>(value));
103 }
104
112 template<typename T>
113 void WriteVectorToOldb(const std::string& key, rad::cii::OldbType& values) {
114 m_oldb_adapter.TrySet<T>(m_oldb_prefix + key, std::get<std::vector<T>>(values));
115 LOG4CPLUS_DEBUG(m_logger, "Writing vector to OLDB: " << m_oldb_prefix + key << " = "
116 << PrintVector<T>(std::get<std::vector<T>>(values)));
117 }
118
126 template<typename T>
127 std::string PrintVector(const std::vector<T>& vec) {
128 std::string str = "";
129 for (auto el : vec) {
130 str += std::to_string(el) + " ";
131 }
132 return str;
133 }
134
135 log4cplus::Logger m_logger;
137 rad::cii::OldbAdapter m_oldb_adapter;
138 std::chrono::milliseconds m_period;
139 std::string m_oldb_prefix;
140};
141
142} // namespace rad
143
144#endif // RAD_ACTIVITY_UPDATE_OLDB_HPP
OldbAdapter interface file.
Definition activityUpdateOldb.hpp:38
std::chrono::milliseconds GetPeriod()
Definition activityUpdateOldb.cpp:36
void SetOldbPrefix(const std::string &prefix)
Definition activityUpdateOldb.cpp:41
void SetPeriod(const std::chrono::milliseconds period)
Definition activityUpdateOldb.cpp:46
void Run() override
Definition activityUpdateOldb.cpp:51
ActivityUpdateOldb & operator=(const ActivityUpdateOldb &)=delete
Disable copy constructor.
virtual ~ActivityUpdateOldb()
Definition activityUpdateOldb.cpp:27
rad::cii::OldbAdapter & GetOldbAdapter()
Definition activityUpdateOldb.cpp:31
ActivityUpdateOldb(const std::string &id, const std::string &logger_name, rad::DoubleMap< rad::cii::OldbType > &oldb_map, std::chrono::seconds conn_timeout, std::chrono::milliseconds period)
Definition activityUpdateOldb.cpp:14
ActivityUpdateOldb(const ActivityUpdateOldb &)=delete
Definition doubleMap.hpp:53
Definition activity.hpp:116
Definition oldbAdapter.hpp:44
bool TrySet(const std::string &key, const T &value, const std::int64_t timestamp=elt::oldb::CiiOldbUtil::Now()) noexcept
Definition oldbAdapter.hpp:536
Logger class.
DoubleMap header file.
std::variant< std::int8_t, std::int16_t, std::int32_t, std::int64_t, std::uint8_t, std::uint16_t, std::uint32_t, std::uint64_t, bool, float, double, std::string, VecInt8Type, VecInt16Type, VecInt32Type, VecInt64Type, VecUint8Type, VecUint16Type, VecUint32Type, VecUint64Type, VecBoolType, VecFloatType, VecDoubleType > OldbType
Definition oldbTypes.hpp:46
Definition actionsApp.cpp:23
OldbAdapter interface file.