• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef POSIX_PTIME_HPP___
2 #define POSIX_PTIME_HPP___
3 
4 /* Copyright (c) 2002,2003 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/date_time/posix_time/posix_time_system.hpp>
13 #include <boost/date_time/time.hpp>
14 #include <boost/date_time/compiler_config.hpp>
15 
16 namespace boost {
17 
18 namespace posix_time {
19 
20   //bring special enum values into the namespace
21   using date_time::special_values;
22   using date_time::not_special;
23   using date_time::neg_infin;
24   using date_time::pos_infin;
25   using date_time::not_a_date_time;
26   using date_time::max_date_time;
27   using date_time::min_date_time;
28 
29   //! Time type with no timezone or other adjustments
30   /*! \ingroup time_basics
31    */
32   class BOOST_SYMBOL_VISIBLE ptime : public date_time::base_time<ptime, posix_time_system>
33   {
34   public:
35     typedef posix_time_system time_system_type;
36     typedef time_system_type::time_rep_type time_rep_type;
37     typedef time_system_type::time_duration_type time_duration_type;
38     typedef ptime time_type;
39     //! Construct with date and offset in day
40     BOOST_CXX14_CONSTEXPR
ptime(gregorian::date d,time_duration_type td)41     ptime(gregorian::date d,time_duration_type td) :
42       date_time::base_time<time_type,time_system_type>(d,td)
43     {}
44     //! Construct a time at start of the given day (midnight)
45     BOOST_CXX14_CONSTEXPR
ptime(gregorian::date d)46     explicit ptime(gregorian::date d) :
47       date_time::base_time<time_type,time_system_type>(d,time_duration_type(0,0,0))
48     {}
49     //! Copy from time_rep
50     BOOST_CXX14_CONSTEXPR
ptime(const time_rep_type & rhs)51     ptime(const time_rep_type& rhs):
52       date_time::base_time<time_type,time_system_type>(rhs)
53     {}
54     //! Construct from special value
55     BOOST_CXX14_CONSTEXPR
ptime(const special_values sv)56     ptime(const special_values sv) :
57       date_time::base_time<time_type,time_system_type>(sv)
58     {}
59 #if !defined(DATE_TIME_NO_DEFAULT_CONSTRUCTOR)
60     // Default constructor constructs to not_a_date_time
61     BOOST_CXX14_CONSTEXPR
ptime()62     ptime() :
63       date_time::base_time<time_type,time_system_type>(gregorian::date(not_a_date_time),
64                                                        time_duration_type(not_a_date_time))
65     {}
66 #endif // DATE_TIME_NO_DEFAULT_CONSTRUCTOR
67 
68     friend BOOST_CXX14_CONSTEXPR
69     bool operator==(const ptime& lhs, const ptime& rhs);
70 
71   };
72 
73   inline BOOST_CXX14_CONSTEXPR
operator ==(const ptime & lhs,const ptime & rhs)74   bool operator==(const ptime& lhs, const ptime& rhs)
75   {
76     return ptime::time_system_type::is_equal(lhs.time_,rhs.time_);
77   }
78 
79 
80 } }//namespace posix_time
81 
82 
83 #endif
84 
85