Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
sys
Time.cpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2021 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#include "
Time.hpp
"
18
19
namespace
toolbox
{
20
inline
namespace
sys {
21
using namespace
std
;
22
23
TOOLBOX_WEAK
Nanos
get_time
(
clockid_t
clock_id
)
noexcept
;
24
25
NanoTime
get_time
(
clockid_t
clock_id
)
noexcept
26
{
27
timespec
ts;
// NOLINT(hicpp-member-init)
28
clock_gettime
(
clock_id
, &ts);
29
// Long-long literal is required here for ARM32.
30
return
NanoTime
{ts.tv_sec * 1'000'000'000LL + ts.tv_nsec};
31
}
32
33
ostream&
operator<<
(ostream& os,
MonoTime
t
)
34
{
35
return
os <<
ns_since_epoch
(
t
);
36
}
37
38
ostream&
operator<<
(ostream& os,
WallTime
t
)
39
{
40
return
os <<
ns_since_epoch
(
t
);
41
}
42
43
thread_local
CyclTime::Time CyclTime::time_;
44
45
}
// namespace sys
46
}
// namespace toolbox
TOOLBOX_WEAK
#define TOOLBOX_WEAK
Definition
Config.h:34
Time.hpp
std
STL namespace.
std::operator<<
ostream & operator<<(ostream &os, const pair< T, U > &p)
Definition
Parser.ut.cpp:29
toolbox::sys::ns_since_epoch
constexpr std::int64_t ns_since_epoch(std::chrono::time_point< ClockT, Duration > t) noexcept
Definition
Time.hpp:190
toolbox::sys::WallTime
WallClock::time_point WallTime
Definition
Time.hpp:111
toolbox::sys::get_time
TOOLBOX_WEAK Nanos get_time(clockid_t clock_id) noexcept
Definition
Time.cpp:25
toolbox::sys::MonoTime
MonoClock::time_point MonoTime
Definition
Time.hpp:110
toolbox::sys::Nanos
std::chrono::nanoseconds Nanos
Definition
Time.hpp:37
toolbox::sys::NanoTime
Nanos NanoTime
Definition
Time.hpp:39
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
Generated by
1.9.8