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 "
iomanager/IOManager.hpp
"
13
#include "
daqdataformats/Fragment.hpp
"
14
#include "
dfmessages/DataRequest.hpp
"
15
#include "
appmodel/DataHandlerModule.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
{
73
{
ResultCode::kFound
,
"FOUND"
}, {
ResultCode::kNotFound
,
"NOT_FOUND"
},
74
{
ResultCode::kTooOld
,
"TOO_OLD"
}, {
ResultCode::kNotYet
,
"NOT_YET_PRESENT"
},
75
{
ResultCode::kPartiallyOld
,
"PARTIALLY_PASSED"
}, {
ResultCode::kCleanup
,
"CLEANUP"
},
76
{
ResultCode::kUnknown
,
"UNKNOWN"
}
77
};
78
79
inline
const
std::string&
resultCodeAsString
(
ResultCode
rc) {
return
ResultCodeStrings
[rc]; }
80
81
// Request Result
82
struct
RequestResult
83
{
84
RequestResult
(
ResultCode
rc,
dfmessages::DataRequest
dr)
85
:
result_code
(rc)
86
,
data_request
(dr)
87
,
fragment
()
88
{}
89
RequestResult
(
ResultCode
rc,
dfmessages::DataRequest
dr,
daqdataformats::Fragment
&& frag)
90
:
result_code
(rc)
91
,
data_request
(dr)
92
,
fragment
(
std
::move(frag))
93
{}
94
ResultCode
result_code
;
95
dfmessages::DataRequest
data_request
;
96
std::unique_ptr<daqdataformats::Fragment>
fragment
;
97
};
98
99
virtual
void
cleanup
() = 0;
100
virtual
RequestResult
data_request
(
dfmessages::DataRequest
/*dr*/
) = 0;
101
102
private
:
103
};
104
105
}
// namespace datahandlinglibs
106
}
// namespace dunedaq
107
108
#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:79
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:74
DataHandlerModule.hpp
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq
Including Qt Headers.
Definition
module.cpp:16
std
Definition
SchemaUtils.hpp:118
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult
Definition
RequestHandlerConcept.hpp:83
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::data_request
dfmessages::DataRequest data_request
Definition
RequestHandlerConcept.hpp:95
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::RequestResult
RequestResult(ResultCode rc, dfmessages::DataRequest dr)
Definition
RequestHandlerConcept.hpp:84
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::RequestResult
RequestResult(ResultCode rc, dfmessages::DataRequest dr, daqdataformats::Fragment &&frag)
Definition
RequestHandlerConcept.hpp:89
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::fragment
std::unique_ptr< daqdataformats::Fragment > fragment
Definition
RequestHandlerConcept.hpp:96
dunedaq::datahandlinglibs::RequestHandlerConcept::RequestResult::result_code
ResultCode result_code
Definition
RequestHandlerConcept.hpp:94
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.17.0