/* * Copyright Andrey Semashev 2007 - 2014. * 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 time_traits.hpp * \author Andrey Semashev * \date 01.12.2007 * * The header contains implementation of time traits that are used in various parts of the * library to acquire current time. */ #ifndef BOOST_LOG_ATTRIBUTES_TIME_TRAITS_HPP_INCLUDED_ #define BOOST_LOG_ATTRIBUTES_TIME_TRAITS_HPP_INCLUDED_ #include #include #include #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once #endif namespace boost { BOOST_LOG_OPEN_NAMESPACE namespace attributes { //! Base class for time traits involving Boost.DateTime. struct basic_time_traits { //! Time type typedef posix_time::ptime time_type; //! Current time source #if defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) typedef posix_time::microsec_clock clock_source; #else typedef posix_time::second_clock clock_source; #endif // defined(BOOST_DATE_TIME_HAS_HIGH_PRECISION_CLOCK) }; //! Time traits that describes UTC time acquirement via Boost.DateTime facilities struct utc_time_traits : public basic_time_traits { /*! * \return Current time stamp */ static time_type get_clock() { return clock_source::universal_time(); } }; //! Time traits that describes local time acquirement via Boost.DateTime facilities struct local_time_traits : public basic_time_traits { /*! * \return Current time stamp */ static time_type get_clock() { return clock_source::local_time(); } }; } // namespace attributes BOOST_LOG_CLOSE_NAMESPACE // namespace log } // namespace boost #include #endif // BOOST_LOG_ATTRIBUTES_TIME_TRAITS_HPP_INCLUDED_