DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::datahandlinglibs::LatencyBufferConcept< T > Class Template Referenceabstract

#include <LatencyBufferConcept.hpp>

Inheritance diagram for dunedaq::datahandlinglibs::LatencyBufferConcept< T >:
[legend]
Collaboration diagram for dunedaq::datahandlinglibs::LatencyBufferConcept< T >:
[legend]

Public Member Functions

 LatencyBufferConcept ()
virtual ~LatencyBufferConcept ()
 LatencyBufferConcept (const LatencyBufferConcept &)=delete
 LatencyBufferConcept is not copy-constructible.
LatencyBufferConceptoperator= (const LatencyBufferConcept &)=delete
 LatencyBufferConcept is not copy-assginable.
 LatencyBufferConcept (LatencyBufferConcept &&)=delete
 LatencyBufferConcept is not move-constructible.
LatencyBufferConceptoperator= (LatencyBufferConcept &&)=delete
 LatencyBufferConcept is not move-assignable.
virtual void conf (const appmodel::LatencyBuffer *conf)=0
 Configure the LB.
virtual void scrap (const appfwk::DAQModule::CommandData_t &cfg)=0
 Unconfigure the LB.
virtual std::size_t occupancy () const =0
 Occupancy of LB.
virtual bool write (T &&element)=0
 Move referenced object into LB.
virtual bool read (T &element)=0
 Move object from LB to referenced.
virtual const T * front ()=0
 Write referenced object into LB without moving it.
virtual const T * back ()=0
 Get pointer to the back of the LB.
virtual void pop (std::size_t amount)=0
 Pop specified amount of elements from LB.
virtual void flush ()=0
 Flush all elements from the latency buffer.
virtual void allocate_memory (size_t)=0
 Whether or not the buffer is allocatable. false by default.
Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject (const MonitorableObject &)=delete
MonitorableObjectoperator= (const MonitorableObject &)=delete
 MonitorableObject (MonitorableObject &&)=delete
MonitorableObjectoperator= (MonitorableObject &&)=delete
virtual ~MonitorableObject ()=default
auto get_opmon_id () const noexcept
auto get_opmon_level () const noexcept

Additional Inherited Members

Public Types inherited from dunedaq::opmonlib::MonitorableObject
using NodePtr = std::weak_ptr<MonitorableObject>
using NewNodePtr = std::shared_ptr<MonitorableObject>
using ElementId = std::string
Static Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject
static bool publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept
Protected Member Functions inherited from dunedaq::opmonlib::MonitorableObject
 MonitorableObject ()=default
void register_node (ElementId name, NewNodePtr)
void publish (google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept
virtual void generate_opmon_data ()

Detailed Description

template<class T>
class dunedaq::datahandlinglibs::LatencyBufferConcept< T >

Concept of a LatencyBuffer.

Template Parameters
RawTypethe type of contained elements
KeyTypethe type of key for searchability

Definition at line 31 of file LatencyBufferConcept.hpp.

Constructor & Destructor Documentation

◆ LatencyBufferConcept() [1/3]

template<class T>
dunedaq::datahandlinglibs::LatencyBufferConcept< T >::LatencyBufferConcept ( )
inline

Definition at line 35 of file LatencyBufferConcept.hpp.

35{}

◆ ~LatencyBufferConcept()

template<class T>
virtual dunedaq::datahandlinglibs::LatencyBufferConcept< T >::~LatencyBufferConcept ( )
inlinevirtual

Definition at line 37 of file LatencyBufferConcept.hpp.

37{}

◆ LatencyBufferConcept() [2/3]

template<class T>
dunedaq::datahandlinglibs::LatencyBufferConcept< T >::LatencyBufferConcept ( const LatencyBufferConcept< T > & )
delete

LatencyBufferConcept is not copy-constructible.

◆ LatencyBufferConcept() [3/3]

template<class T>
dunedaq::datahandlinglibs::LatencyBufferConcept< T >::LatencyBufferConcept ( LatencyBufferConcept< T > && )
delete

LatencyBufferConcept is not move-constructible.

Member Function Documentation

◆ allocate_memory()

template<class T>
virtual void dunedaq::datahandlinglibs::LatencyBufferConcept< T >::allocate_memory ( size_t )
pure virtual

Whether or not the buffer is allocatable. false by default.

Implemented in dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >.

◆ back()

template<class T>
virtual const T * dunedaq::datahandlinglibs::LatencyBufferConcept< T >::back ( )
pure virtual

◆ conf()

◆ flush()

template<class T>
virtual void dunedaq::datahandlinglibs::LatencyBufferConcept< T >::flush ( )
pure virtual

◆ front()

template<class T>
virtual const T * dunedaq::datahandlinglibs::LatencyBufferConcept< T >::front ( )
pure virtual

Write referenced object into LB without moving it.

Get pointer to the front of the LB

Implemented in dunedaq::datahandlinglibs::IterableQueueModel< T >, and dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >.

◆ occupancy()

template<class T>
virtual std::size_t dunedaq::datahandlinglibs::LatencyBufferConcept< T >::occupancy ( ) const
pure virtual

◆ operator=() [1/2]

template<class T>
LatencyBufferConcept & dunedaq::datahandlinglibs::LatencyBufferConcept< T >::operator= ( const LatencyBufferConcept< T > & )
delete

LatencyBufferConcept is not copy-assginable.

◆ operator=() [2/2]

template<class T>
LatencyBufferConcept & dunedaq::datahandlinglibs::LatencyBufferConcept< T >::operator= ( LatencyBufferConcept< T > && )
delete

LatencyBufferConcept is not move-assignable.

◆ pop()

template<class T>
virtual void dunedaq::datahandlinglibs::LatencyBufferConcept< T >::pop ( std::size_t amount)
pure virtual

Pop specified amount of elements from LB.

Implemented in dunedaq::datahandlinglibs::IterableQueueModel< T >.

◆ read()

template<class T>
virtual bool dunedaq::datahandlinglibs::LatencyBufferConcept< T >::read ( T & element)
pure virtual

◆ scrap()

template<class T>
virtual void dunedaq::datahandlinglibs::LatencyBufferConcept< T >::scrap ( const appfwk::DAQModule::CommandData_t & cfg)
pure virtual

◆ write()

template<class T>
virtual bool dunedaq::datahandlinglibs::LatencyBufferConcept< T >::write ( T && element)
pure virtual

The documentation for this class was generated from the following file: