DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ConfigurationManager.hpp
Go to the documentation of this file.
1
12#ifndef APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
13#define APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
14
20#include "confmodel/Session.hpp"
22#include "logging/Logging.hpp" // NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
23
24#include <memory>
25#include <string>
26#include <unordered_map>
27#include <vector>
28
29namespace dunedaq {
30
32 NotADaqApplication,
33 "Application " << app << " is neither a DaqApplication nor a SmartDaqApplication ",
34 ((std::string)app))
35
36ERS_DECLARE_ISSUE(appfwk, MissingComponent, "No such component: " << what, ((std::string)what))
37
39 ActionPlanValidationFailed,
40 "Error validating action plan " << cmd << ", module " << module << ": " << message,
41 ((std::string)cmd)((std::string)module)((std::string)message))
42
43namespace appfwk {
44
45class ConfigurationManager
46{
47public:
48 ConfigurationManager(std::string& config_spec, std::string& app_name, std::string& session_name);
49 void initialize();
50
51 const confmodel::Session* session() const { return m_session; }
52 const confmodel::Application* application()
53 {
54 initialize();
55 return m_application;
56 }
57
58 const std::vector<const confmodel::Queue*>& queues()
59 {
60 initialize();
61 return m_queues;
62 }
63 const std::vector<const confmodel::NetworkConnection*>& networkconnections()
64 {
65 initialize();
66 return m_networkconnections;
67 }
68 const std::vector<const confmodel::DaqModule*>& modules()
69 {
70 initialize();
71 return m_modules;
72 }
73 const confmodel::ConnectivityService* connectivity_service()
74 {
75 initialize();
76 return m_connsvc_config;
77 }
78
79 const std::unordered_map<std::string, const confmodel::ActionPlan*>& action_plans()
80 {
81 initialize();
82 return m_action_plans;
83 }
84 const confmodel::ActionPlan* action_plan(std::string cmd) const;
85
86 template<typename T>
87 const T* get_dal(const std::string& name)
88 {
89 return m_confdb->get<T>(name);
90 }
91
92private:
93 std::shared_ptr<conffwk::Configuration> m_confdb;
94 std::string m_app_name;
95 std::string m_session_name;
96 std::string m_oks_config_spec;
97
98 const confmodel::Session* m_session;
99 const confmodel::Application* m_application;
100 std::unordered_map<std::string, const confmodel::ActionPlan*> m_action_plans;
101 std::vector<const confmodel::DaqModule*> m_modules;
102 std::vector<const confmodel::Queue*> m_queues;
103 std::vector<const confmodel::NetworkConnection*> m_networkconnections;
104 const confmodel::ConnectivityService* m_connsvc_config;
105
106 bool m_initialized{ false };
107};
108
109} // namespace appfwk
110} // namespace dunedaq
111
112#endif // APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)
conffwk entry point
Including Qt Headers.
LED calibration failed to initialize
Definition SSPIssues.hpp:22
SourceID[" << sourceid << "] Command Error