LCOV - code coverage report
Current view: top level - opt/homebrew/include/boost/date_time/posix_time - posix_time_duration.hpp (source / functions) Hit Total Coverage
Test: total_coverage.info Lines: 3 3 100.0 %
Date: 2026-06-25 07:23:43 Functions: 2 2 100.0 %

          Line data    Source code
       1             : #ifndef POSIX_TIME_DURATION_HPP___
       2             : #define POSIX_TIME_DURATION_HPP___
       3             : 
       4             : /* Copyright (c) 2002,2003, 2020 CrystalClear Software, Inc.
       5             :  * Use, modification and distribution is subject to the 
       6             :  * Boost Software License, Version 1.0. (See accompanying
       7             :  * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
       8             :  * Author: Jeff Garland
       9             :  * $Date$
      10             :  */
      11             : 
      12             : #include <boost/core/enable_if.hpp>
      13             : #include <boost/date_time/compiler_config.hpp>
      14             : #include <boost/date_time/posix_time/posix_time_config.hpp>
      15             : #include <boost/numeric/conversion/cast.hpp>
      16             : #include <boost/type_traits/is_integral.hpp>
      17             : 
      18             : namespace boost {
      19             : namespace posix_time {
      20             : 
      21             :   //! Allows expression of durations as an hour count
      22             :   //! The argument must be an integral type
      23             :   /*! \ingroup time_basics
      24             :    */
      25             :   class BOOST_SYMBOL_VISIBLE hours : public time_duration
      26             :   {
      27             :   public:
      28             :       template <typename T>
      29             :       BOOST_CXX14_CONSTEXPR explicit hours(T const& h,
      30             :           typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
      31             :       time_duration(numeric_cast<hour_type>(h), 0, 0)
      32             :     {}
      33             :   };
      34             : 
      35             :   //! Allows expression of durations as a minute count
      36             :   //! The argument must be an integral type
      37             :   /*! \ingroup time_basics
      38             :    */
      39             :   class BOOST_SYMBOL_VISIBLE minutes : public time_duration
      40             :   {
      41             :   public:
      42             :       template <typename T>
      43             :       BOOST_CXX14_CONSTEXPR explicit minutes(T const& m,
      44             :           typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
      45             :       time_duration(0, numeric_cast<min_type>(m),0)
      46             :     {}
      47             :   };
      48             : 
      49             :   //! Allows expression of durations as a seconds count
      50             :   //! The argument must be an integral type
      51             :   /*! \ingroup time_basics
      52             :    */
      53             :   class BOOST_SYMBOL_VISIBLE seconds : public time_duration
      54             :   {
      55             :   public:
      56             :       template <typename T>
      57          28 :       BOOST_CXX14_CONSTEXPR explicit seconds(T const& s,
      58             :           typename boost::enable_if<boost::is_integral<T>, void>::type* = BOOST_DATE_TIME_NULLPTR) :
      59          14 :       time_duration(0,0, numeric_cast<sec_type>(s))
      60          28 :     {}
      61             :   };
      62             : 
      63             : 
      64             :   //! Allows expression of durations as milli seconds
      65             :   /*! \ingroup time_basics
      66             :    */
      67             :   typedef date_time::subsecond_duration<time_duration,1000> millisec;
      68             :   typedef date_time::subsecond_duration<time_duration,1000> milliseconds;
      69             : 
      70             :   //! Allows expression of durations as micro seconds
      71             :   /*! \ingroup time_basics
      72             :    */
      73             :   typedef date_time::subsecond_duration<time_duration,1000000> microsec;
      74             :   typedef date_time::subsecond_duration<time_duration,1000000> microseconds;
      75             : 
      76             :   //This is probably not needed anymore...
      77             : #if defined(BOOST_DATE_TIME_HAS_NANOSECONDS)
      78             : 
      79             :   //! Allows expression of durations as nano seconds
      80             :   /*! \ingroup time_basics
      81             :    */
      82             :   typedef date_time::subsecond_duration<time_duration,1000000000> nanosec;
      83             :   typedef date_time::subsecond_duration<time_duration,1000000000> nanoseconds;
      84             : 
      85             : #endif
      86             : 
      87             : } }//namespace posix_time
      88             : 
      89             : 
      90             : #endif
      91             : 

Generated by: LCOV version 1.16