DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
src
queue
QueueRegistry.cpp
Go to the documentation of this file.
1
10
11
#include "
iomanager/queue/QueueRegistry.hpp
"
12
13
#include <map>
14
#include <memory>
15
#include <set>
16
#include <string>
17
#include <vector>
18
19
namespace
dunedaq::iomanager
{
20
21
std::unique_ptr<QueueRegistry>
QueueRegistry::s_instance
=
nullptr
;
22
23
QueueRegistry
&
24
QueueRegistry::get
()
25
{
26
if
(!
s_instance
) {
27
s_instance
.reset(
new
QueueRegistry
());
28
}
29
return
*
s_instance
;
30
}
31
32
void
33
QueueRegistry::configure
(
const
std::vector<const confmodel::Queue*>& configs,
opmonlib::OpMonManager
& mgr)
34
{
35
if
(
m_configured
) {
36
throw
QueueRegistryConfigured(
ERS_HERE
);
37
}
38
39
m_queue_configs
= configs;
40
41
mgr.
register_node
(
"queues"
,
m_opmon_link
);
42
43
m_configured
=
true
;
44
}
45
46
bool
47
QueueRegistry::has_queue
(
const
std::string& uid,
const
std::string& data_type)
const
48
{
49
for
(
auto
&
config
:
m_queue_configs
) {
50
if
(
config
->UID() == uid &&
config
->get_data_type() == data_type) {
51
return
true
;
52
}
53
}
54
55
return
false
;
56
}
57
58
std::set<std::string>
59
QueueRegistry::get_datatypes
(
const
std::string& uid)
const
60
{
61
std::set<std::string> output;
62
63
for
(
auto
&
config
:
m_queue_configs
) {
64
if
(
config
->UID() == uid) {
65
output.insert(
config
->get_data_type());
66
}
67
}
68
69
return
output;
70
}
71
72
}
// namespace dunedaq::iomanager
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
QueueRegistry.hpp
dunedaq::iomanager::QueueRegistry
The QueueRegistry class manages all Queue instances and gives out handles to the Queues upon request.
Definition
QueueRegistry.hpp:36
dunedaq::iomanager::QueueRegistry::get
static QueueRegistry & get()
Get a handle to the QueueRegistry.
Definition
QueueRegistry.cpp:24
dunedaq::iomanager::QueueRegistry::QueueRegistry
QueueRegistry()=default
dunedaq::iomanager::QueueRegistry::s_instance
static std::unique_ptr< QueueRegistry > s_instance
Definition
QueueRegistry.hpp:92
dunedaq::iomanager::QueueRegistry::configure
void configure(const std::vector< const confmodel::Queue * > &configs, opmonlib::OpMonManager &mgr)
Configure the QueueRegistry.
Definition
QueueRegistry.cpp:33
dunedaq::iomanager::QueueRegistry::get_datatypes
std::set< std::string > get_datatypes(std::string const &uid) const
Definition
QueueRegistry.cpp:59
dunedaq::iomanager::QueueRegistry::m_queue_configs
std::vector< const confmodel::Queue * > m_queue_configs
Definition
QueueRegistry.hpp:87
dunedaq::iomanager::QueueRegistry::has_queue
bool has_queue(std::string const &uid, std::string const &data_type) const
Definition
QueueRegistry.cpp:47
dunedaq::iomanager::QueueRegistry::m_configured
bool m_configured
Definition
QueueRegistry.hpp:90
dunedaq::iomanager::QueueRegistry::m_opmon_link
std::shared_ptr< opmonlib::OpMonLink > m_opmon_link
Definition
QueueRegistry.hpp:88
dunedaq::opmonlib::OpMonManager
Definition
OpMonManager.hpp:50
dunedaq::opmonlib::OpMonManager::register_node
void register_node(ElementId name, NewNodePtr)
Definition
MonitorableObject.cpp:32
dunedaq::config
Definition
config_api_info.hpp:26
dunedaq::iomanager
Definition
IOManager.hxx:19
Generated on
for DUNE-DAQ by
1.17.0