DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
IOManager.hpp
Go to the documentation of this file.
1
8
9
#ifndef IOMANAGER_INCLUDE_IOMANAGER_IOMANAGER_HPP_
10
#define IOMANAGER_INCLUDE_IOMANAGER_IOMANAGER_HPP_
11
12
#include "
iomanager/Receiver.hpp
"
13
#include "
iomanager/SchemaUtils.hpp
"
14
#include "
iomanager/Sender.hpp
"
15
#include "
opmonlib/OpMonManager.hpp
"
16
17
#include "
confmodel/ConnectivityService.hpp
"
18
#include "
confmodel/NetworkConnection.hpp
"
19
#include "
confmodel/Queue.hpp
"
20
21
#include <chrono>
22
#include <functional>
23
#include <map>
24
#include <memory>
25
#include <set>
26
#include <string>
27
#include <vector>
28
29
namespace
dunedaq::iomanager
{
30
36
class
IOManager
37
{
38
39
public
:
40
static
std::shared_ptr<IOManager>
get
()
41
{
42
if
(!
s_instance
)
43
s_instance
= std::shared_ptr<IOManager>(
new
IOManager
());
44
45
return
s_instance
;
46
}
47
48
IOManager
(
const
IOManager
&) =
delete
;
49
IOManager
&
operator=
(
const
IOManager
&) =
delete
;
50
IOManager
(
IOManager
&&) =
delete
;
51
IOManager
&
operator=
(
IOManager
&&) =
delete
;
52
53
void
configure
(std::string
session
,
54
std::vector<const confmodel::Queue*> queues,
55
std::vector<const confmodel::NetworkConnection*> connections,
56
const
confmodel::ConnectivityService
* connection_service,
57
opmonlib::OpMonManager
&);
58
59
void
reset
();
60
void
shutdown
();
61
62
template
<
typename
Datatype>
63
std::shared_ptr<SenderConcept<Datatype>>
get_sender
(
ConnectionId
id
);
64
65
template
<
typename
Datatype>
66
std::shared_ptr<SenderConcept<Datatype>>
get_sender
(std::string
const
& uid);
67
68
template
<
typename
Datatype>
69
std::shared_ptr<ReceiverConcept<Datatype>>
get_receiver
(
ConnectionId
id
);
70
71
template
<
typename
Datatype>
72
std::shared_ptr<ReceiverConcept<Datatype>>
get_receiver
(std::string
const
& uid);
73
template
<
typename
Datatype>
74
std::shared_ptr<ReceiverConcept<Datatype>>
get_receiver
(std::string
const
& uid, std::string
const
& tag);
75
76
template
<
typename
Datatype>
77
void
add_callback
(
ConnectionId
const
&
id
, std::function<
void
(Datatype&)> callback);
78
79
template
<
typename
Datatype>
80
void
add_callback
(std::string
const
& uid, std::function<
void
(Datatype&)> callback);
81
82
template
<
typename
Datatype>
83
void
add_callback
(std::string
const
& uid, std::string
const
& tag, std::function<
void
(Datatype&)> callback);
84
85
template
<
typename
Datatype>
86
void
remove_callback
(
ConnectionId
const
&
id
);
87
88
template
<
typename
Datatype>
89
void
remove_callback
(std::string
const
& uid);
90
template
<
typename
Datatype>
91
void
remove_callback
(std::string
const
& uid, std::string
const
& tag);
92
93
std::set<std::string>
get_datatypes
(std::string
const
& uid);
94
95
private
:
96
IOManager
() {}
97
98
using
SenderMap
= std::map<ConnectionId, std::shared_ptr<Sender>>;
99
using
ReceiverMap
= std::map<ConnectionId, std::shared_ptr<Receiver>>;
100
SenderMap
m_senders
;
101
ReceiverMap
m_receivers
;
102
std::string
m_session
;
103
104
static
std::shared_ptr<IOManager>
s_instance
;
105
};
106
107
}
// namespace dunedaq::iomanager
108
109
#include "
detail/IOManager.hxx
"
110
111
#endif
// IOMANAGER_INCLUDE_IOMANAGER_IOMANAGER_HPP_
IOManager.hxx
OpMonManager.hpp
SchemaUtils.hpp
Queue.hpp
dunedaq::confmodel::ConnectivityService
Definition
ConnectivityService.hpp:29
dunedaq::iomanager::IOManager::get
static std::shared_ptr< IOManager > get()
Definition
IOManager.hpp:40
dunedaq::iomanager::IOManager::s_instance
static std::shared_ptr< IOManager > s_instance
Definition
IOManager.hpp:104
dunedaq::iomanager::IOManager::IOManager
IOManager(IOManager &&)=delete
IOManager is not move-constructible.
dunedaq::iomanager::IOManager::configure
void configure(std::string session, std::vector< const confmodel::Queue * > queues, std::vector< const confmodel::NetworkConnection * > connections, const confmodel::ConnectivityService *connection_service, opmonlib::OpMonManager &)
Definition
IOManager.cpp:21
dunedaq::iomanager::IOManager::IOManager
IOManager()
Definition
IOManager.hpp:96
dunedaq::iomanager::IOManager::add_callback
void add_callback(ConnectionId const &id, std::function< void(Datatype &)> callback)
Definition
IOManager.hxx:23
dunedaq::iomanager::IOManager::ReceiverMap
std::map< ConnectionId, std::shared_ptr< Receiver > > ReceiverMap
Definition
IOManager.hpp:99
dunedaq::iomanager::IOManager::get_datatypes
std::set< std::string > get_datatypes(std::string const &uid)
Definition
IOManager.cpp:53
dunedaq::iomanager::IOManager::m_session
std::string m_session
Definition
IOManager.hpp:102
dunedaq::iomanager::IOManager::m_senders
SenderMap m_senders
Definition
IOManager.hpp:100
dunedaq::iomanager::IOManager::IOManager
IOManager(const IOManager &)=delete
IOManager is not copy-constructible.
dunedaq::iomanager::IOManager::get_sender
std::shared_ptr< SenderConcept< Datatype > > get_sender(ConnectionId id)
Definition
IOManager.hxx:95
dunedaq::iomanager::IOManager::remove_callback
void remove_callback(ConnectionId const &id)
Definition
IOManager.hxx:139
dunedaq::iomanager::IOManager::SenderMap
std::map< ConnectionId, std::shared_ptr< Sender > > SenderMap
Definition
IOManager.hpp:98
dunedaq::iomanager::IOManager::m_receivers
ReceiverMap m_receivers
Definition
IOManager.hpp:101
dunedaq::iomanager::IOManager::operator=
IOManager & operator=(const IOManager &)=delete
IOManager is not copy-assignable.
dunedaq::iomanager::IOManager::reset
void reset()
Definition
IOManager.cpp:43
dunedaq::iomanager::IOManager::get_receiver
std::shared_ptr< ReceiverConcept< Datatype > > get_receiver(ConnectionId id)
Definition
IOManager.hxx:55
dunedaq::iomanager::IOManager::shutdown
void shutdown()
Definition
IOManager.cpp:34
dunedaq::iomanager::IOManager::operator=
IOManager & operator=(IOManager &&)=delete
IOManager is not move-assignable.
dunedaq::opmonlib::OpMonManager
Definition
OpMonManager.hpp:50
ConnectivityService.hpp
NetworkConnection.hpp
Receiver.hpp
Sender.hpp
dunedaq::iomanager
Definition
IOManager.hxx:19
session
Definition
session.py:1
dunedaq::iomanager::ConnectionId
Definition
SchemaUtils.hpp:26
Generated on
for DUNE-DAQ by
1.17.0