|
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 |
Public Types inherited from dunedaq::opmonlib::MonitorableObject | |
| 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 appfwk::DAQModule::CommandData_t &) 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 |
Public Member Functions inherited from dunedaq::datahandlinglibs::LatencyBufferConcept< T > | |
| 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. | |
Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject | |
| 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 |
Static Public Attributes | |
| static constexpr bool | supports_delayed_postprocessing = true |
Protected Member Functions | |
| virtual void | generate_opmon_data () override |
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 |
Private Attributes | |
| std::shared_ptr< SkipListT > | m_skip_list |
Static Private Attributes | |
| static constexpr uint32_t | unconfigured_head_height = 2 |
Additional Inherited Members | |
Static Public Member Functions inherited from dunedaq::opmonlib::MonitorableObject | |
| 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 41 of file SkipListLatencyBufferModel.hpp.
|
inlineoverridevirtual |
Whether or not the buffer is allocatable. false by default.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 104 of file SkipListLatencyBufferModel.hpp.
|
overridevirtual |
Get pointer to the back of the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 99 of file SkipListLatencyBufferModel.hxx.
| SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::begin | ( | ) |
Definition at line 64 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Configure the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 81 of file SkipListLatencyBufferModel.hpp.
| SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::end | ( | ) |
Definition at line 73 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Flush all elements from the latency buffer.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 99 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 91 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 119 of file SkipListLatencyBufferModel.hxx.
|
inline |
Definition at line 95 of file SkipListLatencyBufferModel.hpp.
| SkipListLatencyBufferModel< T >::Iterator dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::lower_bound | ( | T & | element, |
| bool | with_errors = false ) |
Definition at line 82 of file SkipListLatencyBufferModel.hxx.
|
overridevirtual |
Occupancy of LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 10 of file SkipListLatencyBufferModel.hxx.
|
override |
Definition at line 107 of file SkipListLatencyBufferModel.hxx.
| bool dunedaq::datahandlinglibs::SkipListLatencyBufferModel< T >::put | ( | T & | new_element | ) |
Definition at line 35 of file SkipListLatencyBufferModel.hxx.
|
overridevirtual |
Move object from LB to referenced.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 48 of file SkipListLatencyBufferModel.hxx.
|
inlineoverridevirtual |
Unconfigure the LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 88 of file SkipListLatencyBufferModel.hpp.
|
overridevirtual |
Move referenced object into LB.
Implements dunedaq::datahandlinglibs::LatencyBufferConcept< T >.
Definition at line 22 of file SkipListLatencyBufferModel.hxx.
|
private |
Definition at line 125 of file SkipListLatencyBufferModel.hpp.
|
staticconstexpr |
Definition at line 38 of file SkipListLatencyBufferModel.hpp.
|
staticconstexprprivate |
Definition at line 128 of file SkipListLatencyBufferModel.hpp.