xref: /freebsd-src/contrib/llvm-project/libcxx/include/__chrono/steady_clock.h (revision 04eeddc0aa8e0a417a16eaf9d7d095207f4a8623)
1*04eeddc0SDimitry Andric // -*- C++ -*-
2*04eeddc0SDimitry Andric //===----------------------------------------------------------------------===//
3*04eeddc0SDimitry Andric //
4*04eeddc0SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*04eeddc0SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
6*04eeddc0SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*04eeddc0SDimitry Andric //
8*04eeddc0SDimitry Andric //===----------------------------------------------------------------------===//
9*04eeddc0SDimitry Andric 
10*04eeddc0SDimitry Andric #ifndef _LIBCPP___CHRONO_STEADY_CLOCK_H
11*04eeddc0SDimitry Andric #define _LIBCPP___CHRONO_STEADY_CLOCK_H
12*04eeddc0SDimitry Andric 
13*04eeddc0SDimitry Andric #include <__chrono/duration.h>
14*04eeddc0SDimitry Andric #include <__chrono/time_point.h>
15*04eeddc0SDimitry Andric #include <__config>
16*04eeddc0SDimitry Andric 
17*04eeddc0SDimitry Andric #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
18*04eeddc0SDimitry Andric #pragma GCC system_header
19*04eeddc0SDimitry Andric #endif
20*04eeddc0SDimitry Andric 
21*04eeddc0SDimitry Andric _LIBCPP_BEGIN_NAMESPACE_STD
22*04eeddc0SDimitry Andric 
23*04eeddc0SDimitry Andric namespace chrono
24*04eeddc0SDimitry Andric {
25*04eeddc0SDimitry Andric 
26*04eeddc0SDimitry Andric #ifndef _LIBCPP_HAS_NO_MONOTONIC_CLOCK
27*04eeddc0SDimitry Andric class _LIBCPP_TYPE_VIS steady_clock
28*04eeddc0SDimitry Andric {
29*04eeddc0SDimitry Andric public:
30*04eeddc0SDimitry Andric     typedef nanoseconds                                   duration;
31*04eeddc0SDimitry Andric     typedef duration::rep                                 rep;
32*04eeddc0SDimitry Andric     typedef duration::period                              period;
33*04eeddc0SDimitry Andric     typedef chrono::time_point<steady_clock, duration>    time_point;
34*04eeddc0SDimitry Andric     static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = true;
35*04eeddc0SDimitry Andric 
36*04eeddc0SDimitry Andric     static time_point now() _NOEXCEPT;
37*04eeddc0SDimitry Andric };
38*04eeddc0SDimitry Andric #endif
39*04eeddc0SDimitry Andric 
40*04eeddc0SDimitry Andric } // namespace chrono
41*04eeddc0SDimitry Andric 
42*04eeddc0SDimitry Andric _LIBCPP_END_NAMESPACE_STD
43*04eeddc0SDimitry Andric 
44*04eeddc0SDimitry Andric #endif // _LIBCPP___CHRONO_STEADY_CLOCK_H
45