DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
appfwk
include
appfwk
ConfigurationManager.hpp
Go to the documentation of this file.
1
11
12
#ifndef APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
13
#define APPFWK_INCLUDE_APPFWK_CONFIGURATIONMANAGER_HPP_
14
15
#include "
appfwk/ValidationReport.hpp
"
16
17
#include "
appmodel/ConfigurationHelper.hpp
"
18
#include "
conffwk/Configuration.hpp
"
19
#include "
confmodel/ActionPlan.hpp
"
20
#include "
confmodel/DaqApplication.hpp
"
21
#include "
confmodel/DaqModule.hpp
"
22
#include "
confmodel/Session.hpp
"
23
#include "
iomanager/IOManager.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
31
namespace
dunedaq
{
32
33
// Disable coverage collection LCOV_EXCL_START
34
ERS_DECLARE_ISSUE
(
appfwk
,
35
NotADaqApplication,
36
"Application "
<< app <<
" is neither a DaqApplication nor a SmartDaqApplication "
,
37
((std::string)app))
38
39
ERS_DECLARE_ISSUE
(
appfwk
,
MissingComponent
,
"No such component: "
<< what, ((
std
::
string
)what))
40
41
ERS_DECLARE_ISSUE
(
appfwk
,
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
47
namespace
appfwk
{
48
49
class
ConfigurationManager
50
{
51
public
:
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
98
private
:
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_
ConfigurationHelper.hpp
IOManager.hpp
ValidationReport.hpp
dunedaq::confmodel::ActionPlan
Definition
ActionPlan.hpp:34
dunedaq::confmodel::Application
Definition
Application.hpp:36
dunedaq::confmodel::ConnectivityService
Definition
ConnectivityService.hpp:29
dunedaq::confmodel::DaqApplication
Definition
DaqApplication.hpp:39
dunedaq::confmodel::Session
Definition
Session.hpp:42
Configuration.hpp
conffwk entry point
ActionPlan.hpp
DaqApplication.hpp
DaqModule.hpp
Session.hpp
Logging.hpp
ERS_DECLARE_ISSUE
#define ERS_DECLARE_ISSUE( namespace_name, class_name, message_, attributes)
Definition
macro.hpp:65
appfwk
Definition
__init__.py:1
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::MissingComponent
MissingComponent
Definition
ConfigurationManager.hpp:39
dunedaq::ERS_DECLARE_ISSUE
ERS_DECLARE_ISSUE(snbmodules, InvalidGroupTransferIDError, "InvalidGroupTransferIDError: Transfer ID "<< transfer_id<< " not found in "<< location,((std::string) transfer_id)((std::string) location)) ERS_DECLARE_ISSUE(snbmodules
dunedaq::initialize
LED calibration failed to initialize
Definition
SSPIssues.hpp:22
std
Definition
SchemaUtils.hpp:118
Generated on
for DUNE-DAQ by
1.17.0