12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #ifndef POSIX_TIME_DURATION_HPP___
- #define POSIX_TIME_DURATION_HPP___
- /* Copyright (c) 2002,2003, 2020 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>
- BOOST_CXX14_CONSTEXPR 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>
- BOOST_CXX14_CONSTEXPR 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>
- BOOST_CXX14_CONSTEXPR 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
|