DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
#include <SkipListLatencyBufferModel.hpp>
Classes | |
struct | Iterator |
Public Types | |
using | SkipListT = typename folly::ConcurrentSkipList<T> |
using | SkipListTIter = typename SkipListT::iterator |
using | SkipListTAcc = typename folly::ConcurrentSkipList<T>::Accessor |
using | SkipListTSkip = typename folly::ConcurrentSkipList<T>::Skipper |
![]() | |
using | NodePtr = std::weak_ptr<MonitorableObject> |
using | NewNodePtr = std::shared_ptr<MonitorableObject> |
using | ElementId = std::string |
Public Member Functions | |
SkipListLatencyBufferModel () | |
void | conf (const appmodel::LatencyBuffer *) override |
Configure the LB. | |
void | scrap (const nlohmann::json &) override |
Unconfigure the LB. | |
std::shared_ptr< SkipListT > & | get_skip_list () |
size_t | occupancy () const override |
Occupancy of LB. | |
void | flush () override |
Flush all elements from the latency buffer. | |
bool | write (T &&new_element) override |
Move referenced object into LB. | |
bool | put (T &new_element) |
bool | read (T &element) override |
Move object from LB to referenced. | |
void | allocate_memory (size_t) override |
Whether or not the buffer is allocatable. false by default. | |
Iterator | begin () |
Iterator | end () |
Iterator | lower_bound (T &element, bool with_errors=false) |
const T * | front () override |
Write referenced object into LB without moving it. | |
const T * | back () override |
Get pointer to the back of the LB. | |
void | pop (size_t num=1) override |
![]() | |
LatencyBufferConcept () | |
virtual | ~LatencyBufferConcept () |
LatencyBufferConcept (const LatencyBufferConcept &)=delete | |
LatencyBufferConcept is not copy-constructible. | |
LatencyBufferConcept & | operator= (const LatencyBufferConcept &)=delete |
LatencyBufferConcept is not copy-assginable. | |
LatencyBufferConcept (LatencyBufferConcept &&)=delete | |
LatencyBufferConcept is not move-constructible. | |
LatencyBufferConcept & | operator= (LatencyBufferConcept &&)=delete |
LatencyBufferConcept is not move-assignable. | |
virtual void | pop (std::size_t amount)=0 |
Pop specified amount of elements from LB. | |
![]() | |
MonitorableObject (const MonitorableObject &)=delete | |
MonitorableObject & | operator= (const MonitorableObject &)=delete |
MonitorableObject (MonitorableObject &&)=delete | |
MonitorableObject & | operator= (MonitorableObject &&)=delete |
virtual | ~MonitorableObject ()=default |
auto | get_opmon_id () const noexcept |
auto | get_opmon_level () const noexcept |
Protected Member Functions | |
virtual void | generate_opmon_data () override |
![]() | |
MonitorableObject ()=default | |
void | register_node (ElementId name, NewNodePtr) |
void | publish (google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept |
Private Attributes | |
std::shared_ptr< SkipListT > | m_skip_list |
Static Private Attributes | |
static constexpr uint32_t | unconfigured_head_height = 2 |
Additional Inherited Members | |
![]() | |
static bool | publishable_metric (OpMonLevel entry, OpMonLevel system) noexcept |
Definition at line 28 of file SkipListLatencyBufferModel.hpp.
using dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::SkipListT = typename folly::ConcurrentSkipList<T> |
Definition at line 33 of file SkipListLatencyBufferModel.hpp.
using dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::SkipListTAcc = typename folly::ConcurrentSkipList<T>::Accessor |
Definition at line 35 of file SkipListLatencyBufferModel.hpp.
using dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::SkipListTIter = typename SkipListT::iterator |
Definition at line 34 of file SkipListLatencyBufferModel.hpp.
using dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::SkipListTSkip = typename folly::ConcurrentSkipList<T>::Skipper |
Definition at line 36 of file SkipListLatencyBufferModel.hpp.
|
inline |
Definition at line 39 of file SkipListLatencyBufferModel.hpp.
|
inlineoverridevirtual |
Whether or not the buffer is allocatable. false by default.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 102 of file SkipListLatencyBufferModel.hpp.
|
overridevirtual |
Get pointer to the back of the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 97 of file SkipListLatencyBufferModel.hxx.
SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::begin | ( | ) |
Definition at line 62 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Configure the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 79 of file SkipListLatencyBufferModel.hpp.
SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::end | ( | ) |
Definition at line 71 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Flush all elements from the latency buffer.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 97 of file SkipListLatencyBufferModel.hpp.
|
overridevirtual |
Write referenced object into LB without moving it.
Get pointer to the front of the LB
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 89 of file SkipListLatencyBufferModel.hxx.
|
overrideprotectedvirtual |
Hook for customisable pubblication. The function can throw, exception will be caught by the monitoring thread
Reimplemented from dunedaq::opmonlib::MonitorableObject.
Definition at line 117 of file SkipListLatencyBufferModel.hxx.
|
inline |
Definition at line 93 of file SkipListLatencyBufferModel.hpp.
SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::lower_bound | ( | T & | element, |
bool | with_errors = false ) |
Definition at line 80 of file SkipListLatencyBufferModel.hxx.
|
overridevirtual |
Occupancy of LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 8 of file SkipListLatencyBufferModel.hxx.
|
override |
Definition at line 105 of file SkipListLatencyBufferModel.hxx.
bool dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::put | ( | T & | new_element | ) |
Definition at line 33 of file SkipListLatencyBufferModel.hxx.
|
overridevirtual |
Move object from LB to referenced.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 46 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Unconfigure the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 86 of file SkipListLatencyBufferModel.hpp.
|
overridevirtual |
Move referenced object into LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 20 of file SkipListLatencyBufferModel.hxx.
|
private |
Definition at line 123 of file SkipListLatencyBufferModel.hpp.
|
staticconstexprprivate |
Definition at line 126 of file SkipListLatencyBufferModel.hpp.