![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/log/detail/ |
Upload File : |
/* * Copyright Andrey Semashev 2007 - 2015. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ /*! * \file timestamp.hpp * \author Andrey Semashev * \date 31.07.2011 * * \brief This header is the Boost.Log library implementation, see the library documentation * at http://www.boost.org/doc/libs/release/libs/log/doc/html/index.html. */ #ifndef BOOST_LOG_DETAIL_TIMESTAMP_HPP_INCLUDED_ #define BOOST_LOG_DETAIL_TIMESTAMP_HPP_INCLUDED_ #include <boost/cstdint.hpp> #include <boost/log/detail/config.hpp> #if defined(BOOST_WINDOWS) && !defined(__CYGWIN__) #include <boost/winapi/basic_types.hpp> #endif #include <boost/log/detail/header.hpp> #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once #endif namespace boost { BOOST_LOG_OPEN_NAMESPACE namespace aux { /*! * Duration between two timestamps */ class duration { int64_t m_ticks; public: explicit duration(int64_t ticks = 0) : m_ticks(ticks) {} #if defined(BOOST_WINDOWS) && !defined(__CYGWIN__) int64_t milliseconds() const { return m_ticks; } #else BOOST_LOG_API int64_t milliseconds() const; #endif }; /*! * Opaque timestamp class */ class timestamp { uint64_t m_ticks; public: explicit timestamp(uint64_t ticks = 0) : m_ticks(ticks) {} duration operator- (timestamp that) const { return duration(m_ticks - that.m_ticks); } }; /*! * \fn get_timestamp * * The function returns a timestamp, in opaque units since an unspecified * time point. This timer is guaranteed to be monotonic, it should not * be affected by clock changes, either manual or seasonal. Also, it * should be as fast as possible. */ #if defined(BOOST_WINDOWS) && !defined(__CYGWIN__) typedef uint64_t (BOOST_WINAPI_WINAPI_CC* get_tick_count_t)(); extern BOOST_LOG_API get_tick_count_t get_tick_count; inline timestamp get_timestamp() { return timestamp(get_tick_count()); } #else typedef timestamp (*get_timestamp_t)(); extern BOOST_LOG_API get_timestamp_t get_timestamp; #endif } // namespace aux BOOST_LOG_CLOSE_NAMESPACE // namespace log } // namespace boost #include <boost/log/detail/footer.hpp> #endif // BOOST_LOG_DETAIL_TIMESTAMP_HPP_INCLUDED_