xrpld
Toggle main menu visibility
Loading...
Searching...
No Matches
include
xrpl
beast
clock
abstract_clock.h
1
#pragma once
2
3
namespace
beast
{
4
34
template
<
class
Clock>
35
class
AbstractClock
36
{
37
public
:
38
using
rep
= Clock::rep;
39
using
period
= Clock::period;
40
using
duration
= Clock::duration;
41
using
time_point
= Clock::time_point;
42
using
ClockType
= Clock;
43
44
static
bool
const
is_steady
= Clock::is_steady;
// NOLINT(readability-identifier-naming)
45
46
virtual
~AbstractClock
() =
default
;
47
AbstractClock
() =
default
;
48
AbstractClock
(
AbstractClock
const
&) =
default
;
49
53
[[nodiscard]]
virtual
time_point
54
now
()
const
= 0;
55
};
56
57
//------------------------------------------------------------------------------
58
59
namespace
detail
{
60
61
template
<
class
Facade,
class
Clock>
62
struct
AbstractClockWrapper
:
public
AbstractClock
<Facade>
63
{
64
explicit
AbstractClockWrapper
() =
default
;
65
66
using
typename
AbstractClock<Facade>::duration
;
67
using
typename
AbstractClock<Facade>::time_point
;
68
69
[[nodiscard]]
time_point
70
now
()
const override
71
{
72
return
Clock::now();
73
}
74
};
75
76
}
// namespace detail
77
78
//------------------------------------------------------------------------------
79
86
template
<
class
Facade,
class
Clock = Facade>
87
AbstractClock<Facade>&
88
getAbstractClock
()
89
{
90
static
detail::AbstractClockWrapper<Facade, Clock>
kClock;
91
return
kClock;
92
}
93
94
}
// namespace beast
beast::AbstractClock< std::chrono::steady_clock >::duration
std::chrono::steady_clock::duration duration
Definition
abstract_clock.h:40
beast::AbstractClock< std::chrono::steady_clock >::rep
std::chrono::steady_clock::rep rep
Definition
abstract_clock.h:38
beast::AbstractClock::~AbstractClock
virtual ~AbstractClock()=default
beast::AbstractClock< std::chrono::steady_clock >::is_steady
static bool const is_steady
Definition
abstract_clock.h:44
beast::AbstractClock::AbstractClock
AbstractClock(AbstractClock const &)=default
beast::AbstractClock< std::chrono::steady_clock >::period
std::chrono::steady_clock::period period
Definition
abstract_clock.h:39
beast::AbstractClock< std::chrono::steady_clock >::time_point
std::chrono::steady_clock::time_point time_point
Definition
abstract_clock.h:41
beast::AbstractClock::now
virtual time_point now() const =0
Returns the current time.
beast::AbstractClock::AbstractClock
AbstractClock()=default
beast::AbstractClock< std::chrono::steady_clock >::ClockType
std::chrono::steady_clock ClockType
Definition
abstract_clock.h:42
beast::detail
Definition
abstract_clock.h:59
beast
Definition
base_uint.h:697
beast::getAbstractClock
AbstractClock< Facade > & getAbstractClock()
Returns a global instance of an abstract clock.
Definition
abstract_clock.h:88
beast::detail::AbstractClockWrapper
Definition
abstract_clock.h:63
beast::detail::AbstractClockWrapper::now
time_point now() const override
Returns the current time.
Definition
abstract_clock.h:70
beast::detail::AbstractClockWrapper::AbstractClockWrapper
AbstractClockWrapper()=default
Generated by
1.17.0