mirror of
https://github.com/yuzu-emu/ext-boost.git
synced 2024-12-22 23:45:39 +00:00
92 lines
2.7 KiB
C++
92 lines
2.7 KiB
C++
#ifndef POSIX_TIME_DURATION_HPP___
|
|
#define POSIX_TIME_DURATION_HPP___
|
|
|
|
/* Copyright (c) 2002,2003 CrystalClear Software, Inc.
|
|
* Use, modification and distribution is subject to the
|
|
* Boost Software License, Version 1.0. (See accompanying
|
|
* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
* Author: Jeff Garland
|
|
* $Date$
|
|
*/
|
|
|
|
#include <boost/core/enable_if.hpp>
|
|
#include <boost/date_time/compiler_config.hpp>
|
|
#include <boost/date_time/posix_time/posix_time_config.hpp>
|
|
#include <boost/numeric/conversion/cast.hpp>
|
|
#include <boost/type_traits/is_integral.hpp>
|
|
|
|
namespace boost {
|
|
namespace posix_time {
|
|
|
|
//! Allows expression of durations as an hour count
|
|
//! The argument must be an integral type
|
|
/*! \ingroup time_basics
|
|
*/
|
|
class BOOST_SYMBOL_VISIBLE hours : public time_duration
|
|
{
|
|
public:
|
|
template <typename T>
|
|
explicit hours(T const& h,
|
|
typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
|
|
time_duration(numeric_cast<hour_type>(h), 0, 0)
|
|
{}
|
|
};
|
|
|
|
//! Allows expression of durations as a minute count
|
|
//! The argument must be an integral type
|
|
/*! \ingroup time_basics
|
|
*/
|
|
class BOOST_SYMBOL_VISIBLE minutes : public time_duration
|
|
{
|
|
public:
|
|
template <typename T>
|
|
explicit minutes(T const& m,
|
|
typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
|
|
time_duration(0, numeric_cast<min_type>(m),0)
|
|
{}
|
|
};
|
|
|
|
//! Allows expression of durations as a seconds count
|
|
//! The argument must be an integral type
|
|
/*! \ingroup time_basics
|
|
*/
|
|
class BOOST_SYMBOL_VISIBLE seconds : public time_duration
|
|
{
|
|
public:
|
|
template <typename T>
|
|
explicit seconds(T const& s,
|
|
typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
|
|
time_duration(0,0, numeric_cast<sec_type>(s))
|
|
{}
|
|
};
|
|
|
|
|
|
//! Allows expression of durations as milli seconds
|
|
/*! \ingroup time_basics
|
|
*/
|
|
typedef date_time::subsecond_duration<time_duration,1000> millisec;
|
|
typedef date_time::subsecond_duration<time_duration,1000> milliseconds;
|
|
|
|
//! Allows expression of durations as micro seconds
|
|
/*! \ingroup time_basics
|
|
*/
|
|
typedef date_time::subsecond_duration<time_duration,1000000> microsec;
|
|
typedef date_time::subsecond_duration<time_duration,1000000> microseconds;
|
|
|
|
//This is probably not needed anymore...
|
|
#if defined(BOOST_DATE_TIME_HAS_NANOSECONDS)
|
|
|
|
//! Allows expression of durations as nano seconds
|
|
/*! \ingroup time_basics
|
|
*/
|
|
typedef date_time::subsecond_duration<time_duration,1000000000> nanosec;
|
|
typedef date_time::subsecond_duration<time_duration,1000000000> nanoseconds;
|
|
|
|
#endif
|
|
|
|
} }//namespace posix_time
|
|
|
|
|
|
#endif
|
|
|