DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
queue
QueueRegistry.hpp
Go to the documentation of this file.
1
10
11
#ifndef IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUEREGISTRY_HPP_
12
#define IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUEREGISTRY_HPP_
13
14
#include "
iomanager/SchemaUtils.hpp
"
15
#include "
iomanager/queue/Queue.hpp
"
16
#include "
iomanager/queue/QueueIssues.hpp
"
17
18
#include "
confmodel/Queue.hpp
"
19
#include "
opmonlib/OpMonManager.hpp
"
20
21
#include "
ers/Issue.hpp
"
22
23
#include <map>
24
#include <memory>
25
#include <set>
26
#include <string>
27
#include <vector>
28
29
namespace
dunedaq::iomanager
{
30
35
class
QueueRegistry
36
{
37
public
:
41
~QueueRegistry
() =
default
;
42
47
static
QueueRegistry
&
get
();
48
55
template
<
typename
T>
56
std::shared_ptr<Queue<T>>
get_queue
(
const
std::string& name);
57
63
void
configure
(
const
std::vector<const confmodel::Queue*>& configs,
opmonlib::OpMonManager
& mgr);
64
65
// ONLY TO BE USED FOR TESTING!
66
static
void
reset
() {
s_instance
.reset(
nullptr
); }
67
void
shutdown
() {
m_queue_registry
.clear(); }
68
69
bool
has_queue
(std::string
const
& uid, std::string
const
& data_type)
const
;
70
71
std::set<std::string>
get_datatypes
(std::string
const
& uid)
const
;
72
73
private
:
74
struct
QueueEntry
75
{
76
const
confmodel::Queue
*
m_config
;
77
const
std::type_info*
m_type
;
78
std::shared_ptr<QueueBase>
m_instance
;
79
};
80
81
QueueRegistry
() =
default
;
82
83
template
<
typename
T>
84
std::shared_ptr<QueueBase>
create_queue
(
const
confmodel::Queue
*
config
);
85
86
std::map<std::string, QueueEntry>
m_queue_registry
;
87
std::vector<const confmodel::Queue*>
m_queue_configs
;
88
std::shared_ptr<opmonlib::OpMonLink>
m_opmon_link
{ std::make_shared<opmonlib::OpMonLink>() };
89
90
bool
m_configured
{
false
};
91
92
static
std::unique_ptr<QueueRegistry>
s_instance
;
93
94
QueueRegistry
(
const
QueueRegistry
&) =
delete
;
95
QueueRegistry
&
operator=
(
const
QueueRegistry
&) =
delete
;
96
QueueRegistry
(
QueueRegistry
&&) =
delete
;
97
QueueRegistry
&
operator=
(
QueueRegistry
&&) =
delete
;
98
};
99
100
}
// namespace dunedaq::iomanager
101
102
#include "
detail/QueueRegistry.hxx
"
103
104
#endif
// IOMANAGER_INCLUDE_IOMANAGER_QUEUE_QUEUEREGISTRY_HPP_
Issue.hpp
OpMonManager.hpp
QueueIssues.hpp
QueueRegistry.hxx
SchemaUtils.hpp
Queue.hpp
dunedaq::confmodel::Queue
Definition
Queue.hpp:23
dunedaq::iomanager::QueueRegistry::m_queue_registry
std::map< std::string, QueueEntry > m_queue_registry
Definition
QueueRegistry.hpp:86
dunedaq::iomanager::QueueRegistry::QueueRegistry
QueueRegistry(QueueRegistry &&)=delete
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::~QueueRegistry
~QueueRegistry()=default
QueueRegistry destructor.
dunedaq::iomanager::QueueRegistry::QueueRegistry
QueueRegistry(const QueueRegistry &)=delete
dunedaq::iomanager::QueueRegistry::create_queue
std::shared_ptr< QueueBase > create_queue(const confmodel::Queue *config)
Definition
QueueRegistry.hxx:53
dunedaq::iomanager::QueueRegistry::get_datatypes
std::set< std::string > get_datatypes(std::string const &uid) const
Definition
QueueRegistry.cpp:59
dunedaq::iomanager::QueueRegistry::reset
static void reset()
Definition
QueueRegistry.hpp:66
dunedaq::iomanager::QueueRegistry::operator=
QueueRegistry & operator=(QueueRegistry &&)=delete
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::iomanager::QueueRegistry::shutdown
void shutdown()
Definition
QueueRegistry.hpp:67
dunedaq::iomanager::QueueRegistry::get_queue
std::shared_ptr< Queue< T > > get_queue(const std::string &name)
Get a handle to a Queue.
Definition
QueueRegistry.hxx:12
dunedaq::iomanager::QueueRegistry::operator=
QueueRegistry & operator=(const QueueRegistry &)=delete
dunedaq::opmonlib::OpMonManager
Definition
OpMonManager.hpp:50
dunedaq::config
Definition
config_api_info.hpp:26
dunedaq::iomanager
Definition
IOManager.hxx:19
Queue.hpp
dunedaq::iomanager::QueueRegistry::QueueEntry
Definition
QueueRegistry.hpp:75
dunedaq::iomanager::QueueRegistry::QueueEntry::m_config
const confmodel::Queue * m_config
Definition
QueueRegistry.hpp:76
dunedaq::iomanager::QueueRegistry::QueueEntry::m_instance
std::shared_ptr< QueueBase > m_instance
Definition
QueueRegistry.hpp:78
dunedaq::iomanager::QueueRegistry::QueueEntry::m_type
const std::type_info * m_type
Definition
QueueRegistry.hpp:77
Generated on
for DUNE-DAQ by
1.17.0