DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
datahandlinglibs
include
datahandlinglibs
models
detail
DefaultSkipListRequestHandler.hxx
Go to the documentation of this file.
1
// Declarations for DefaultSkipListRequestHandler
2
3
namespace
dunedaq
{
4
namespace
datahandlinglibs
{
5
6
template
<
class
T>
7
void
8
DefaultSkipListRequestHandler<T>::skip_list_cleanup_request
()
9
{
10
size_t
removed_ctr = 0;
11
uint64_t tailts = 0;
// oldest // NOLINT(build/unsigned)
12
uint64_t headts = 0;
// newest // NOLINT(build/unsigned)
13
{
14
SkipListAcc
acc(
inherited::m_latency_buffer
->get_skip_list());
15
auto
tail = acc.last();
16
auto
head = acc.first();
17
if
(tail && head) {
18
tailts = (*tail).get_timestamp();
// tailptr->get_timestamp();
19
headts = (*head).get_timestamp();
// headptr->get_timestamp();
20
TLOG_DEBUG
(
TLVL_WORK_STEPS
) <<
"Cleanup REQUEST with "
21
<<
"Oldest stored TS="
<< headts <<
" "
22
<<
"Newest stored TS="
<< tailts;
23
if
(tailts - headts >
m_max_ts_diff
) {
// ts differnce exceeds maximum
24
++(
inherited::m_pop_reqs
);
25
uint64_t timediff =
m_max_ts_diff
;
// NOLINT(build/unsigned)
26
while
(timediff >=
m_max_ts_diff
) {
27
bool
removed = acc.remove(*head);
28
if
(!removed) {
29
TLOG_DEBUG
(
TLVL_WORK_STEPS
) <<
"Unsuccesfull remove from SKL during cleanup: "
<< removed;
30
}
else
{
31
++removed_ctr;
32
}
33
head = acc.first();
34
headts = (*head).get_timestamp();
35
timediff = tailts - headts;
36
}
37
inherited::m_pops_count
+= removed_ctr;
38
39
// Update hte oldest timestamp monitorable
40
inherited::m_oldest_timestamp
= headts;
41
}
42
}
else
{
43
TLOG_DEBUG
(
TLVL_WORK_STEPS
) <<
"Didn't manage to get SKL head and tail!"
;
44
}
45
}
46
inherited::m_num_buffer_cleanups
++;
47
}
48
49
}
// namespace datahandlinglibs
50
}
// namespace dunedaq
TLVL_WORK_STEPS
@ TLVL_WORK_STEPS
Definition
IfaceWrapper.cpp:52
dunedaq::datahandlinglibs::DefaultRequestHandlerModel< T, datahandlinglibs::SkipListLatencyBufferModel< T > >::m_pops_count
std::atomic< int > m_pops_count
Definition
DefaultRequestHandlerModel.hpp:286
dunedaq::datahandlinglibs::DefaultRequestHandlerModel< T, datahandlinglibs::SkipListLatencyBufferModel< T > >::m_num_buffer_cleanups
std::atomic< int > m_num_buffer_cleanups
Definition
DefaultRequestHandlerModel.hpp:284
dunedaq::datahandlinglibs::DefaultRequestHandlerModel< T, datahandlinglibs::SkipListLatencyBufferModel< T > >::m_latency_buffer
std::shared_ptr< datahandlinglibs::SkipListLatencyBufferModel< T > > & m_latency_buffer
Definition
DefaultRequestHandlerModel.hpp:231
dunedaq::datahandlinglibs::DefaultRequestHandlerModel< T, datahandlinglibs::SkipListLatencyBufferModel< T > >::m_oldest_timestamp
std::atomic< uint64_t > m_oldest_timestamp
Definition
DefaultRequestHandlerModel.hpp:302
dunedaq::datahandlinglibs::DefaultRequestHandlerModel< T, datahandlinglibs::SkipListLatencyBufferModel< T > >::m_pop_reqs
std::atomic< int > m_pop_reqs
Definition
DefaultRequestHandlerModel.hpp:285
dunedaq::datahandlinglibs::DefaultSkipListRequestHandler::m_max_ts_diff
static const constexpr uint64_t m_max_ts_diff
Definition
DefaultSkipListRequestHandler.hpp:57
dunedaq::datahandlinglibs::DefaultSkipListRequestHandler::SkipListAcc
typename folly::ConcurrentSkipList< T >::Accessor SkipListAcc
Definition
DefaultSkipListRequestHandler.hpp:35
dunedaq::datahandlinglibs::DefaultSkipListRequestHandler::skip_list_cleanup_request
void skip_list_cleanup_request()
Definition
DefaultSkipListRequestHandler.hxx:8
TLOG_DEBUG
#define TLOG_DEBUG(lvl,...)
Definition
Logging.hpp:112
dunedaq::datahandlinglibs
Definition
DataHandlingConcept.hpp:16
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0