tetl 0.1.0
Embedded Template Library
Loading...
Searching...
No Matches
system_clock.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: BSL-1.0
2
3#ifndef TETL_CHRONO_SYSTEM_CLOCK_HPP
4#define TETL_CHRONO_SYSTEM_CLOCK_HPP
5
10#include <etl/_ratio/ratio.hpp>
11
12namespace etl::chrono {
13
16 using rep = int32_t;
17 using period = micro;
20 static constexpr bool is_steady = false;
21
22 [[nodiscard]] static auto now() noexcept -> time_point { return {}; }
23
24 [[nodiscard]] static auto to_time_t(time_point const& t) noexcept -> time_t
25 {
26 return static_cast<time_t>(duration_cast<seconds>(t.time_since_epoch()).count());
27 }
28
29 [[nodiscard]] static auto from_time_t(time_t t) noexcept -> time_point
30 {
31 return time_point{seconds{static_cast<seconds::rep>(t)}};
32 }
33};
34
35template <typename Duration>
37
40
41} // namespace etl::chrono
42
43#endif // TETL_CHRONO_SYSTEM_CLOCK_HPP
constexpr auto duration_cast(duration< Rep, Period > const &duration) noexcept(is_arithmetic_v< Rep > and is_arithmetic_v< typename ToDur::rep >) -> ToDur
Converts a duration to a duration of different type ToDur.
Definition duration_cast.hpp:77
Definition abs.hpp:11
sys_time< chrono::days > sys_days
Definition system_clock.hpp:39
chrono::time_point< chrono::system_clock, Duration > sys_time
Definition system_clock.hpp:36
duration< int_least64_t > seconds
Signed integer type of at least 35 bits.
Definition duration.hpp:356
sys_time< chrono::seconds > sys_seconds
Definition system_clock.hpp:38
TETL_BUILTIN_INT32 int32_t
Signed integer type with width of exactly 32 bits.
Definition int_t.hpp:17
etl::size_t time_t
Arithmetic type capable of representing times.
Definition time_t.hpp:14
ratio< 1, 1 '000 '000 > micro
Definition ratio.hpp:32
Class template etl::chrono::duration represents a time interval.
Definition duration.hpp:31
int_least64_t rep
Definition duration.hpp:33
Definition system_clock.hpp:15
static auto now() noexcept -> time_point
Definition system_clock.hpp:22
int32_t rep
Definition system_clock.hpp:16
micro period
Definition system_clock.hpp:17
static auto from_time_t(time_t t) noexcept -> time_point
Definition system_clock.hpp:29
chrono::time_point< system_clock > time_point
Definition system_clock.hpp:19
static constexpr bool is_steady
Definition system_clock.hpp:20
chrono::duration< rep, period > duration
Definition system_clock.hpp:18
static auto to_time_t(time_point const &t) noexcept -> time_t
Definition system_clock.hpp:24
Class template time_point represents a point in time. It is implemented as if it stores a value of ty...
Definition time_point.hpp:21