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
16
22#include "confmodel/Session.hpp"
24#include "logging/Logging.hpp" // NOTE: if ISSUES ARE DECLARED BEFORE include logging/Logging.hpp, TLOG_DEBUG<<issue wont work.
25
26#include <memory>
27#include <string>
28#include <unordered_map>
29#include <vector>
30
31namespace dunedaq {
32
33// Disable coverage collection LCOV_EXCL_START
35 NotADaqApplication,
36 "Application " << app << " is neither a DaqApplication nor a SmartDaqApplication ",
37 ((std::string)app))
38
39ERS_DECLARE_ISSUE(appfwk, MissingComponent, "No such component: " << what, ((std::string)what))
40
42 ActionPlanValidationFailed,
43 "Action plan validation failed: " << cmd << ", module " << module << ": " << message,
44 ((std::string)cmd)((std::string)module)((std::string)message))
45// Re-enable coverage collection LCOV_EXCL_STOP
46
47namespace appfwk {
48
49class ConfigurationManager
50{
51public:
52 ConfigurationManager(std::string const& config_spec, std::string const& app_name, std::string const& session_name);
53 std::vector<ValidationReport> initialize(bool throw_on_fatal = true);
54
55 const confmodel::Session* get_session() const { return m_session; }
56 const confmodel::Application* get_application()
57 {
58 initialize();
59 return m_application;
60 }
61
62 const std::vector<const confmodel::Queue*>& get_queues()
63 {
64 initialize();
65 return m_queues;
66 }
67 const std::vector<const confmodel::NetworkConnection*>& get_networkconnections()
68 {
69 initialize();
70 return m_networkconnections;
71 }
72 const std::vector<const confmodel::DaqModule*>& get_modules()
73 {
74 initialize();
75 return m_modules;
76 }
77 const confmodel::ConnectivityService* get_connectivity_service()
78 {
79 initialize();
80 return m_connsvc_config;
81 }
82
83 const std::unordered_map<std::string, const confmodel::ActionPlan*>& get_action_plans()
84 {
85 initialize();
86 return m_action_plans;
87 }
88 const confmodel::ActionPlan* get_action_plan(std::string cmd) const;
89
90 template<typename T>
91 const T* get_dal(const std::string& name)
92 {
93 return m_confdb->get<T>(name);
94 }
95
96 std::string get_app_name() const { return m_app_name; }
97
98private:
99 std::shared_ptr<conffwk::Configuration> m_confdb;
100 std::shared_ptr<appmodel::ConfigurationHelper> m_helper;
101 std::string m_app_name;
102 std::string m_session_name;
103
104 const confmodel::Session* m_session;
105 const confmodel::DaqApplication* m_application;
106 std::unordered_map<std::string, const confmodel::ActionPlan*> m_action_plans;
107 std::vector<const confmodel::DaqModule*> m_modules;
108 std::vector<const confmodel::Queue*> m_queues;
109 std::vector<const confmodel::NetworkConnection*> m_networkconnections;
110 const confmodel::ConnectivityService* m_connsvc_config;
111
112 bool m_initialized{ false };
113};
114
115} // namespace appfwk
116} // namespace dunedaq
117
118#endif // APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
conffwk entry point
#define ERS_DECLARE_ISSUE( namespace_name, class_name, message_, attributes)
Definition macro.hpp:65
Including Qt Headers.
Unsupported std::string uri Execution of command failed
Definition Issues.hpp:69
LED calibration failed to initialize
Definition SSPIssues.hpp:22