82 lines
2.0 KiB
C++
82 lines
2.0 KiB
C++
|
/*
|
||
|
* 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_
|