DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
datahandlinglibs
include
datahandlinglibs
concepts
LatencyBufferConcept.hpp
Go to the documentation of this file.
1
8
#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_LATENCYBUFFERCONCEPT_HPP_
9
#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_LATENCYBUFFERCONCEPT_HPP_
10
11
#include "
appfwk/DAQModule.hpp
"
12
#include "
appmodel/LatencyBuffer.hpp
"
13
#include "
opmonlib/MonitorableObject.hpp
"
14
15
#include <cstddef>
16
#include <concepts>
17
18
namespace
dunedaq
{
19
namespace
datahandlinglibs
{
20
21
template
<
typename
T>
22
concept
ExpectsOrder
= T::expects_order;
23
29
template
<
class
T>
30
class
LatencyBufferConcept
:
public
opmonlib::MonitorableObject
31
{
32
33
public
:
34
LatencyBufferConcept
() {}
35
36
virtual
~LatencyBufferConcept
() {}
37
38
LatencyBufferConcept
(
const
LatencyBufferConcept
&) =
delete
;
39
LatencyBufferConcept
&
operator=
(
const
LatencyBufferConcept
&) =
40
delete
;
41
LatencyBufferConcept
(
LatencyBufferConcept
&&) =
delete
;
42
LatencyBufferConcept
&
operator=
(
LatencyBufferConcept
&&) =
delete
;
43
45
virtual
void
conf
(
const
appmodel::LatencyBuffer
*
conf
) = 0;
46
48
virtual
void
scrap
(
const
appfwk::DAQModule::CommandData_t& cfg) = 0;
49
51
virtual
std::size_t
occupancy
()
const
= 0;
52
54
virtual
bool
write
(T&& element) = 0;
55
57
virtual
bool
read
(T& element) = 0;
58
60
virtual
const
T*
front
() = 0;
61
63
virtual
const
T*
back
() = 0;
64
66
virtual
void
pop
(std::size_t amount) = 0;
67
69
virtual
void
flush
() = 0;
70
72
virtual
void
allocate_memory
(
size_t
/*size*/
) = 0;
73
};
74
75
}
// namespace datahandlinglibs
76
}
// namespace dunedaq
77
78
#endif
// DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_CONCEPTS_LATENCYBUFFERCONCEPT_HPP_
DAQModule.hpp
MonitorableObject.hpp
dunedaq::appmodel::LatencyBuffer
Definition
LatencyBuffer.hpp:20
dunedaq::datahandlinglibs::LatencyBufferConcept::conf
virtual void conf(const appmodel::LatencyBuffer *conf)=0
Configure the LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::pop
virtual void pop(std::size_t amount)=0
Pop specified amount of elements from LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::operator=
LatencyBufferConcept & operator=(LatencyBufferConcept &&)=delete
LatencyBufferConcept is not move-assignable.
dunedaq::datahandlinglibs::LatencyBufferConcept::allocate_memory
virtual void allocate_memory(size_t)=0
Allocate memory for LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::operator=
LatencyBufferConcept & operator=(const LatencyBufferConcept &)=delete
LatencyBufferConcept is not copy-assginable.
dunedaq::datahandlinglibs::LatencyBufferConcept::scrap
virtual void scrap(const appfwk::DAQModule::CommandData_t &cfg)=0
Unconfigure the LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::front
virtual const T * front()=0
Get pointer to the front of the LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::LatencyBufferConcept
LatencyBufferConcept()
Definition
LatencyBufferConcept.hpp:34
dunedaq::datahandlinglibs::LatencyBufferConcept::read
virtual bool read(T &element)=0
Move object from LB to referenced.
dunedaq::datahandlinglibs::LatencyBufferConcept::~LatencyBufferConcept
virtual ~LatencyBufferConcept()
Definition
LatencyBufferConcept.hpp:36
dunedaq::datahandlinglibs::LatencyBufferConcept::write
virtual bool write(T &&element)=0
Move referenced object into LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::back
virtual const T * back()=0
Get pointer to the back of the LB.
dunedaq::datahandlinglibs::LatencyBufferConcept::flush
virtual void flush()=0
Flush all elements from the latency buffer.
dunedaq::datahandlinglibs::LatencyBufferConcept::LatencyBufferConcept
LatencyBufferConcept(LatencyBufferConcept &&)=delete
LatencyBufferConcept is not move-constructible.
dunedaq::datahandlinglibs::LatencyBufferConcept::LatencyBufferConcept
LatencyBufferConcept(const LatencyBufferConcept &)=delete
LatencyBufferConcept is not copy-constructible.
dunedaq::datahandlinglibs::LatencyBufferConcept::occupancy
virtual std::size_t occupancy() const =0
Occupancy of LB.
dunedaq::opmonlib::MonitorableObject
Definition
MonitorableObject.hpp:74
dunedaq::datahandlinglibs::ExpectsOrder
Definition
LatencyBufferConcept.hpp:22
LatencyBuffer.hpp
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0