DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
DefaultSkipListRequestHandler.hpp
Go to the documentation of this file.
1
9#ifndef DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_DEFAULTSKIPLISTREQUESTHANDLER_HPP_
10#define DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_DEFAULTSKIPLISTREQUESTHANDLER_HPP_
11
12#include "logging/Logging.hpp"
13
19
20#include <atomic>
21#include <memory>
22#include <string>
23
25
26namespace dunedaq {
27namespace datahandlinglibs {
28
29template<class T>
31 : public datahandlinglibs::DefaultRequestHandlerModel<T, datahandlinglibs::SkipListLatencyBufferModel<T>>
32{
33public:
35 using SkipListAcc = typename folly::ConcurrentSkipList<T>::Accessor;
36 using SkipListSkip = typename folly::ConcurrentSkipList<T>::Skipper;
37
38 // Constructor that binds LB and error registry
40 std::unique_ptr<datahandlinglibs::FrameErrorRegistry>& error_registry)
41 : datahandlinglibs::DefaultRequestHandlerModel<T, datahandlinglibs::SkipListLatencyBufferModel<T>>(
42 latency_buffer,
43 error_registry)
44 {
45 TLOG_DEBUG(TLVL_WORK_STEPS) << "DefaultSkipListRequestHandler created...";
46 }
47
48protected:
49 // Default ceanup request override
50 void cleanup() override { skip_list_cleanup_request(); }
51
52 // Cleanup request implementation for skiplist LB
54
55private:
56 // Constant: m_max_ts_diff is used to clean old data from the latency buffer. It is set to 10s.
57 static const constexpr uint64_t m_max_ts_diff = 625000000; // NOLINT(build/unsigned)
58
59 // Stats
60 std::atomic<int> m_found_requested_count{ 0 };
61 std::atomic<int> m_bad_requested_count{ 0 };
62};
63
64} // namespace datahandlinglibs
65} // namespace dunedaq
66
67// Declarations
69
70#endif // DATAHANDLINGLIBS_INCLUDE_DATAHANDLINGLIBS_MODELS_DEFAULTSKIPLISTREQUESTHANDLER_HPP_
DefaultSkipListRequestHandler(std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< T > > &latency_buffer, std::unique_ptr< datahandlinglibs::FrameErrorRegistry > &error_registry)
typename folly::ConcurrentSkipList< T >::Skipper SkipListSkip
typename folly::ConcurrentSkipList< T >::Accessor SkipListAcc
#define TLOG_DEBUG(lvl,...)
Definition Logging.hpp:112
Including Qt Headers.