DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
datahandlinglibs
include
datahandlinglibs
concepts
RequestHandlerConcept.hpp
Go to the documentation of this file.
1
8
#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_REQUESTHANDLERCONCEPT_HPP_
9
#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_REQUESTHANDLERCONCEPT_HPP_
10
11
#include "
appfwk/DAQModule.hpp
"
12
#include "
appmodel/DataHandlerModule.hpp
"
13
#include "
daqdataformats/Fragment.hpp
"
14
#include "
dfmessages/DataRequest.hpp
"
15
#include "
iomanager/IOManager.hpp
"
16
#include "
opmonlib/MonitorableObject.hpp
"
17
18
#include <map>
19
#include <memory>
20
#include <string>
21
#include <utility>
22
23
namespace
dunedaq
{
24
namespace
datahandlinglibs
{
25
26
template
<
class
ReadoutType,
class
LatencyBufferType>
27
class
RequestHandlerConcept
:
public
opmonlib::MonitorableObject
28
{
29
30
public
:
31
RequestHandlerConcept
() {}
32
33
virtual
~RequestHandlerConcept
() {}
34
35
RequestHandlerConcept
(
const
RequestHandlerConcept
&) =
delete
;
36
RequestHandlerConcept
&
operator=
(
const
RequestHandlerConcept
&) =
37
delete
;
38
RequestHandlerConcept
(
RequestHandlerConcept
&&) =
delete
;
39
RequestHandlerConcept
&
operator=
(
RequestHandlerConcept
&&) =
delete
;
40
41
// virtual void init(const CommandData_t& args) = 0;
42
virtual
void
conf
(
const
appmodel::DataHandlerModule
*
conf
) = 0;
43
virtual
void
scrap
(
const
appfwk::DAQModule::CommandData_t& args) = 0;
44
virtual
void
start
(
const
appfwk::DAQModule::CommandData_t& args) = 0;
45
virtual
void
stop
(
const
appfwk::DAQModule::CommandData_t& args) = 0;
46
virtual
void
record
(
const
appfwk::DAQModule::CommandData_t& args) = 0;
47
49
virtual
void
cleanup_check
() = 0;
50
52
virtual
void
periodic_data_transmission
() = 0;
53
55
virtual
void
issue_request
(
dfmessages::DataRequest
/*dr*/
,
bool
/*is_retry*/
) = 0;
56
58
virtual
std::uint64_t
get_oldest_time
() = 0;
// NOLINT(build/unsigned)
59
protected
:
60
// Result code of requests
61
enum
ResultCode
62
{
63
kFound
= 0,
64
kNotFound
,
65
kTooOld
,
66
kNotYet
,
67
kPartial
,
68
kPartiallyOld
,
69
kCleanup
,
70
kUnknown
71
};
72
std::map<ResultCode, std::string>
ResultCodeStrings
{ {
ResultCode::kFound
,
"FOUND"
},
73
{
ResultCode::kNotFound
,
"NOT_FOUND"
},
74
{
ResultCode::kTooOld
,
"TOO_OLD"
},
75
{
ResultCode::kNotYet
,
"NOT_YET_PRESENT"
},
76
{
ResultCode::kPartiallyOld
,
"PARTIALLY_PASSED"
},
77
{
ResultCode::kCleanup
,
"CLEANUP"
},
78
{
ResultCode::kUnknown
,
"UNKNOWN"
} };
79
80
inline
const
std::string&
resultCodeAsString
(
ResultCode
rc) {
return
ResultCodeStrings
[rc]; }
81
82
// Request Result
83
struct
RequestResult
84
{
85
RequestResult
(
ResultCode
rc,
dfmessages::DataRequest
dr)
86
:
result_code
(rc)
87
,
data_request
(dr)
88
,
fragment
()
89
{
90
}
91
RequestResult
(
ResultCode
rc,
dfmessages::DataRequest
dr,
daqdataformats::Fragment
&& frag)
92
:
result_code
(rc)
93
,
data_request
(dr)
94
,
fragment
(
std
::move(frag))
95
{
96
}
97
ResultCode
result_code
;
98
dfmessages::DataRequest
data_request
;
99
std::unique_ptr<daqdataformats::Fragment>
fragment
;
100
};
101
102
virtual
void
cleanup
() = 0;
103
virtual
RequestResult
data_request
(
dfmessages::DataRequest
/*dr*/
) = 0;
104
105
private
:
106
};
107
108
}
// namespace datahandlinglibs
109
}
// namespace dunedaq
110
111
#endif
// DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_REQUESTHANDLERCONCEPT_HPP_
DAQModule.hpp
DataRequest.hpp
Fragment.hpp
IOManager.hpp
MonitorableObject.hpp
dunedaq::appmodel::DataHandlerModule
Definition
DataHandlerModule.hpp:36
dunedaq::daqdataformats::Fragment
C++ Representation of a DUNE Fragment, wrapping the flat byte array that is the Fragment's "actual" f...
Definition
Fragment.hpp:38
dunedaq::datahandlinglibs::RequestHandlerConcept::get_oldest_time
virtual std::uint64_t get_oldest_time()=0
Get oldest timestamp in the buffer.
dunedaq::datahandlinglibs::RequestHandlerConcept::periodic_data_transmission
virtual void periodic_data_transmission()=0
Periodic data transmission - relevant for trigger in particular.
dunedaq::datahandlinglibs::RequestHandlerConcept::ResultCode
ResultCode
Definition
RequestHandlerConcept.hpp:62
dunedaq::datahandlinglibs::RequestHandlerConcept::kUnknown
@ kUnknown
Definition
RequestHandlerConcept.hpp:70
dunedaq::datahandlinglibs::RequestHandlerConcept::kPartiallyOld
@ kPartiallyOld
Definition
RequestHandlerConcept.hpp:68
dunedaq::datahandlinglibs::RequestHandlerConcept::kCleanup
@ kCleanup
Definition
RequestHandlerConcept.hpp:69
dunedaq::datahandlinglibs::RequestHandlerConcept::kFound
@ kFound
Definition
RequestHandlerConcept.hpp:63
dunedaq::datahandlinglibs::RequestHandlerConcept::kNotYet
@ kNotYet
Definition
RequestHandlerConcept.hpp:66
dunedaq::datahandlinglibs::RequestHandlerConcept::kTooOld
@ kTooOld
Definition
RequestHandlerConcept.hpp:65
dunedaq::datahandlinglibs::RequestHandlerConcept::kNotFound
@ kNotFound
Definition
RequestHandlerConcept.hpp:64
dunedaq::datahandlinglibs::RequestHandlerConcept::kPartial
@ kPartial
Definition
RequestHandlerConcept.hpp:67
dunedaq::datahandlinglibs::RequestHandlerConcept::resultCodeAsString
const std::string & resultCodeAsString(ResultCode rc)
Definition
RequestHandlerConcept.hpp:80
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestHandlerConcept
RequestHandlerConcept(const RequestHandlerConcept &)=delete
RequestHandlerConcept is not copy-constructible.
dunedaq::datahandlinglibs::RequestHandlerConcept::data_request
virtual RequestResult data_request(dfmessages::DataRequest)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::start
virtual void start(const appfwk::DAQModule::CommandData_t &args)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::operator=
RequestHandlerConcept & operator=(RequestHandlerConcept &&)=delete
RequestHandlerConcept is not move-assignable.
dunedaq::datahandlinglibs::RequestHandlerConcept::record
virtual void record(const appfwk::DAQModule::CommandData_t &args)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::scrap
virtual void scrap(const appfwk::DAQModule::CommandData_t &args)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::ResultCodeStrings
std::map< ResultCode, std::string > ResultCodeStrings
Definition
RequestHandlerConcept.hpp:72
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestHandlerConcept
RequestHandlerConcept()
Definition
RequestHandlerConcept.hpp:31
dunedaq::datahandlinglibs::RequestHandlerConcept::cleanup_check
virtual void cleanup_check()=0
Check if cleanup is necessary and execute it if necessary.
dunedaq::datahandlinglibs::RequestHandlerConcept::operator=
RequestHandlerConcept & operator=(const RequestHandlerConcept &)=delete
RequestHandlerConcept is not copy-assginable.
dunedaq::datahandlinglibs::RequestHandlerConcept::~RequestHandlerConcept
virtual ~RequestHandlerConcept()
Definition
RequestHandlerConcept.hpp:33
dunedaq::datahandlinglibs::RequestHandlerConcept::cleanup
virtual void cleanup()=0
dunedaq::datahandlinglibs::RequestHandlerConcept::conf
virtual void conf(const appmodel::DataHandlerModule *conf)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::stop
virtual void stop(const appfwk::DAQModule::CommandData_t &args)=0
dunedaq::datahandlinglibs::RequestHandlerConcept::issue_request
virtual void issue_request(dfmessages::DataRequest, bool)=0
Issue a data request to the request handler.
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestHandlerConcept
RequestHandlerConcept(RequestHandlerConcept &&)=delete
RequestHandlerConcept is not move-constructible.
dunedaq::opmonlib::MonitorableObject
Definition
MonitorableObject.hpp:71
DataHandlerModule.hpp
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq
The DUNE-DAQ namespace.
Definition
cib_utilities.cpp:5
std
Definition
SchemaUtils.hpp:118
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult
Definition
RequestHandlerConcept.hpp:84
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::data_request
dfmessages::DataRequest data_request
Definition
RequestHandlerConcept.hpp:98
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::RequestResult
RequestResult(ResultCode rc, dfmessages::DataRequest dr)
Definition
RequestHandlerConcept.hpp:85
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::RequestResult
RequestResult(ResultCode rc, dfmessages::DataRequest dr, daqdataformats::Fragment &&frag)
Definition
RequestHandlerConcept.hpp:91
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::fragment
std::unique_ptr< daqdataformats::Fragment > fragment
Definition
RequestHandlerConcept.hpp:99
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::result_code
ResultCode result_code
Definition
RequestHandlerConcept.hpp:97
dunedaq::dfmessages::DataRequest
This message represents a request for data sent to a single component of the DAQ.
Definition
DataRequest.hpp:26
Generated on
for DUNE-DAQ by
1.18.0