15726e559SLouis Dionne // -*- C++ -*- 25726e559SLouis Dionne //===----------------------------------------------------------------------===// 35726e559SLouis Dionne // 45726e559SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 55726e559SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 65726e559SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 75726e559SLouis Dionne // 85726e559SLouis Dionne //===----------------------------------------------------------------------===// 95726e559SLouis Dionne 105726e559SLouis Dionne #ifndef _LIBCPP___CHRONO_SYSTEM_CLOCK_H 115726e559SLouis Dionne #define _LIBCPP___CHRONO_SYSTEM_CLOCK_H 125726e559SLouis Dionne 135726e559SLouis Dionne #include <__chrono/duration.h> 145726e559SLouis Dionne #include <__chrono/time_point.h> 155726e559SLouis Dionne #include <__config> 165726e559SLouis Dionne #include <ctime> 175726e559SLouis Dionne 185726e559SLouis Dionne #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 195726e559SLouis Dionne # pragma GCC system_header 205726e559SLouis Dionne #endif 215726e559SLouis Dionne 225726e559SLouis Dionne _LIBCPP_BEGIN_NAMESPACE_STD 235726e559SLouis Dionne 24*9783f28cSLouis Dionne namespace chrono { 255726e559SLouis Dionne 26*9783f28cSLouis Dionne class _LIBCPP_EXPORTED_FROM_ABI system_clock { 275726e559SLouis Dionne public: 285726e559SLouis Dionne typedef microseconds duration; 295726e559SLouis Dionne typedef duration::rep rep; 305726e559SLouis Dionne typedef duration::period period; 315726e559SLouis Dionne typedef chrono::time_point<system_clock> time_point; 325146b57bSNikolas Klauser static _LIBCPP_CONSTEXPR_SINCE_CXX14 const bool is_steady = false; 335726e559SLouis Dionne 345726e559SLouis Dionne static time_point now() _NOEXCEPT; 355726e559SLouis Dionne static time_t to_time_t(const time_point& __t) _NOEXCEPT; 365726e559SLouis Dionne static time_point from_time_t(time_t __t) _NOEXCEPT; 375726e559SLouis Dionne }; 385726e559SLouis Dionne 394f15267dSNikolas Klauser #if _LIBCPP_STD_VER >= 20 405726e559SLouis Dionne 415726e559SLouis Dionne template <class _Duration> 425726e559SLouis Dionne using sys_time = time_point<system_clock, _Duration>; 435726e559SLouis Dionne using sys_seconds = sys_time<seconds>; 445726e559SLouis Dionne using sys_days = sys_time<days>; 455726e559SLouis Dionne 465726e559SLouis Dionne #endif 475726e559SLouis Dionne 485726e559SLouis Dionne } // namespace chrono 495726e559SLouis Dionne 505726e559SLouis Dionne _LIBCPP_END_NAMESPACE_STD 515726e559SLouis Dionne 525726e559SLouis Dionne #endif // _LIBCPP___CHRONO_SYSTEM_CLOCK_H 53