ifw-sup 5.1.0
 
Loading...
Searching...
No Matches
dataContext.hpp
Go to the documentation of this file.
1
7
8#ifndef SUP_SYSSUP_COMMON_DATA_CONTEXT_HPP_
9#define SUP_SYSSUP_COMMON_DATA_CONTEXT_HPP_
10
11// System headers
12#include <iostream>
13#include <unordered_map>
14#include <type_traits>
15
16// Local headers
17#include <rad/topicPub.hpp>
18#include <rad/mal/publisher.hpp>
19
22#include <ifw/core/utils/bat/logger.hpp>
23#include <ifw/core/utils/bat/dbInterface.hpp>
24
25#include <Stdif.hpp>
26
28
29 constexpr auto KEY_DB_OB_MODES = "ob_mode";
67 public:
78 DataContext(Config& config, bool with_publisher = true, bool with_oldb = true);
79
83 virtual ~DataContext();
84
88 void ReloadConfig();
89
93 void UpdateDb();
94
95
100
106
111 void SetState(const State::StateEnum state);
112
117 void SetState(const std::string& state);
118
124
129 void SetSubstate(const State::SubstateEnum state);
130
135 void SetSubstate(const std::string& state);
136
142
147 std::string GetEstimatedStateStr();
148
153 void SetEstimatedState(const State::StateEnum state);
154
159 std::string GetEstimatedSubstateStr();
160
166
172
173 void UpdateObMode(const std::string& mode);
174 void UpdateSubsysStates(const std::string& name,
175 const std::string& state,
176 const std::string& substate);
182 void PublishStates();
183
184 inline std::string GetObsMode() const {return m_obsmode;};
185
186
187 private:
188 DataContext(const DataContext&) = delete;
189 DataContext& operator=(const DataContext&) = delete;
190
191 Config& m_config;
192 std::unique_ptr<ifw::core::utils::bat::DbInterface> m_db_interface;
193
195 std::unique_ptr<rad::cii::Publisher<stdif::Status>> m_publisher;
196
197 State::StateEnum m_state;
198 State::SubstateEnum m_substate;
199 State::StateEnum m_estimated_state;
200 State::SubstateEnum m_estimated_substate;
201 std::string m_obsmode{""};
202 log4cplus::Logger m_logger;
203 };
204
205} // namespace devmgr
206
207#endif // DEVMGR_COMMON_DATA_CONTEXT_HPP_
Definition config.hpp:162
Definition dataContext.hpp:66
State::SubstateEnum GetSubstate()
Get server actual substate.
Definition dataContext.cpp:108
State::StateEnum GetEstimatedState()
Get actual estimated state.
Definition dataContext.cpp:123
DataContext(Config &config, bool with_publisher=true, bool with_oldb=true)
Definition dataContext.cpp:20
void PublishStates()
Publish actual states.
Definition dataContext.cpp:182
State::SubstateEnum GetEstimatedSubstate()
Get actual estimated substate.
Definition dataContext.cpp:141
void UpdateSubsysStates(const std::string &name, const std::string &state, const std::string &substate)
Definition dataContext.cpp:168
std::string GetEstimatedSubstateStr()
Get actual estimated substate as string.
Definition dataContext.cpp:146
void UpdateObMode(const std::string &mode)
Definition dataContext.cpp:159
Config & GetConfig()
Definition dataContext.cpp:84
std::string GetEstimatedStateStr()
Set actual estimated state as string.
Definition dataContext.cpp:128
void UpdateDb()
Definition dataContext.cpp:66
void SetEstimatedSubstate(const State::SubstateEnum state)
Set actual estimated substate.
Definition dataContext.cpp:153
std::string GetObsMode() const
Definition dataContext.hpp:184
void SetSubstate(const State::SubstateEnum state)
Set server actual substate.
Definition dataContext.cpp:113
void SetEstimatedState(const State::StateEnum state)
Set actual estimated state.
Definition dataContext.cpp:135
void ReloadConfig()
Definition dataContext.cpp:59
void SetState(const State::StateEnum state)
Set server actual state.
Definition dataContext.cpp:98
virtual ~DataContext()
Definition dataContext.cpp:55
State::StateEnum GetState()
Get server actual state.
Definition dataContext.cpp:93
ActionMgr class source file.
Definition actionMgr.cpp:30
constexpr auto KEY_DB_OB_MODES
Definition dataContext.hpp:29
StateEnum
Definition states.hpp:61
SubstateEnum
Definition states.hpp:67