DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
utilities
include
utilities
TimestampEstimatorBase.hpp
Go to the documentation of this file.
1
11
#ifndef UTILITIES_INCLUDE_UTILITIES_TIMESTAMPESTIMATORBASE_HPP_
12
#define UTILITIES_INCLUDE_UTILITIES_TIMESTAMPESTIMATORBASE_HPP_
13
14
#include <atomic>
15
#include <chrono>
16
#include <limits>
17
18
namespace
dunedaq::utilities
{
19
25
class
TimestampEstimatorBase
26
{
27
public
:
28
static
constexpr
uint64_t
s_invalid_ts
= std::numeric_limits<uint64_t>::max();
// NOLINT(build/unsigned)
29
30
virtual
~TimestampEstimatorBase
() =
default
;
31
virtual
uint64_t
get_timestamp_estimate
()
const
= 0;
// NOLINT(build/unsigned)
32
virtual
std::chrono::microseconds
get_wait_estimate
(uint64_t ts)
const
= 0;
// NOLINT(build/unsigned)
33
34
enum
WaitStatus
35
{
36
kFinished
,
37
kInterrupted
38
};
39
47
WaitStatus
wait_for_valid_timestamp
(std::atomic<bool>& continue_flag)
48
{
49
uint64_t ts_discard =
s_invalid_ts
;
// NOLINT(build/unsigned)
50
return
wait_for_valid_timestamp
(continue_flag, ts_discard);
51
}
52
WaitStatus
wait_for_valid_timestamp
(std::atomic<bool>& continue_flag,
53
uint64_t& last_seen_ts);
// NOLINT(build/unsigned)
54
61
WaitStatus
wait_for_requested_timestamp
(uint64_t ts, std::atomic<bool>& continue_flag)
// NOLINT(build/unsigned)
62
{
63
uint64_t ts_discard =
s_invalid_ts
;
// NOLINT(build/unsigned)
64
return
wait_for_requested_timestamp
(ts, continue_flag, ts_discard);
65
}
66
WaitStatus
wait_for_requested_timestamp
(uint64_t ts,
// NOLINT(build/unsigned)
67
std::atomic<bool>& continue_flag,
68
uint64_t& last_seen_ts);
// NOLINT(build/unsigned)
69
};
70
71
}
// namespace dunedaq::utilities
72
73
#endif
// UTILITIES_INCLUDE_UTILITIES_TIMESTAMPESTIMATORBASE_HPP_
dunedaq::utilities::TimestampEstimatorBase
TimestampEstimatorBase is the base class for timestamp-based logic in test systems where the current ...
Definition
TimestampEstimatorBase.hpp:26
dunedaq::utilities::TimestampEstimatorBase::wait_for_requested_timestamp
WaitStatus wait_for_requested_timestamp(uint64_t ts, std::atomic< bool > &continue_flag)
Definition
TimestampEstimatorBase.hpp:61
dunedaq::utilities::TimestampEstimatorBase::~TimestampEstimatorBase
virtual ~TimestampEstimatorBase()=default
dunedaq::utilities::TimestampEstimatorBase::s_invalid_ts
static constexpr uint64_t s_invalid_ts
Definition
TimestampEstimatorBase.hpp:28
dunedaq::utilities::TimestampEstimatorBase::wait_for_valid_timestamp
WaitStatus wait_for_valid_timestamp(std::atomic< bool > &continue_flag)
Definition
TimestampEstimatorBase.hpp:47
dunedaq::utilities::TimestampEstimatorBase::WaitStatus
WaitStatus
Definition
TimestampEstimatorBase.hpp:35
dunedaq::utilities::TimestampEstimatorBase::kInterrupted
@ kInterrupted
Definition
TimestampEstimatorBase.hpp:37
dunedaq::utilities::TimestampEstimatorBase::kFinished
@ kFinished
Definition
TimestampEstimatorBase.hpp:36
dunedaq::utilities::TimestampEstimatorBase::get_wait_estimate
virtual std::chrono::microseconds get_wait_estimate(uint64_t ts) const =0
dunedaq::utilities::TimestampEstimatorBase::get_timestamp_estimate
virtual uint64_t get_timestamp_estimate() const =0
dunedaq::utilities
Definition
TimestampEstimatorTimeSync.hxx:3
Generated on Wed Oct 22 2025 for DUNE-DAQ by
1.12.0