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 nlohmann::json &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 27 of file LatencyBufferConcept.hpp.

Constructor & Destructor Documentation

◆ LatencyBufferConcept() [1/3]

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

Definition at line 31 of file LatencyBufferConcept.hpp.

31{}

◆ ~LatencyBufferConcept()

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

Definition at line 33 of file LatencyBufferConcept.hpp.

33{}

◆ 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 nlohmann::json & 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: