| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- /*
- * 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 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 <boost/date_time/posix_time/posix_time_types.hpp>
- #include <boost/log/detail/config.hpp>
- #include <boost/log/detail/header.hpp>
- #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 <boost/log/detail/footer.hpp>
- #endif // BOOST_LOG_ATTRIBUTES_TIME_TRAITS_HPP_INCLUDED_
|