Toolbox snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
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
19namespace toolbox {
20inline namespace sys {
21using namespace std;
22
24
26{
27 timespec ts; // NOLINT(hicpp-member-init)
29 // Long-long literal is required here for ARM32.
30 return NanoTime{ts.tv_sec * 1'000'000'000LL + ts.tv_nsec};
31}
32
33ostream& operator<<(ostream& os, MonoTime t)
34{
35 return os << ns_since_epoch(t);
36}
37
38ostream& operator<<(ostream& os, WallTime t)
39{
40 return os << ns_since_epoch(t);
41}
42
43thread_local CyclTime::Time CyclTime::time_;
44
45} // namespace sys
46} // namespace toolbox
#define TOOLBOX_WEAK
Definition Config.h:34
STL namespace.
ostream & operator<<(ostream &os, const pair< T, U > &p)
Definition Parser.ut.cpp:29
constexpr std::int64_t ns_since_epoch(std::chrono::time_point< ClockT, Duration > t) noexcept
Definition Time.hpp:190
WallClock::time_point WallTime
Definition Time.hpp:111
TOOLBOX_WEAK Nanos get_time(clockid_t clock_id) noexcept
Definition Time.cpp:25
MonoClock::time_point MonoTime
Definition Time.hpp:110
std::chrono::nanoseconds Nanos
Definition Time.hpp:37
Nanos NanoTime
Definition Time.hpp:39
constexpr auto bind() noexcept
Definition Slot.hpp:92