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 or http://www.boost.org/LICENSE-1.0) 8 * Author: Jeff Garland 9 * $Date: 2006/03/20 20:15:25 $ 10 */ 11 12 #include "boost/date_time/posix_time/posix_time_system.hpp" 13 #include "boost/date_time/time.hpp" 14 15 namespace boost { 16 17 namespace posix_time { 18 19 //bring special enum values into the namespace 20 using date_time::special_values; 21 using date_time::not_special; 22 using date_time::neg_infin; 23 using date_time::pos_infin; 24 using date_time::not_a_date_time; 25 using date_time::max_date_time; 26 using date_time::min_date_time; 27 28 //! Time type with no timezone or other adjustments 29 /*! \ingroup time_basics 30 */ 31 class ptime : public date_time::base_time<ptime, posix_time_system> 32 { 33 public: 34 typedef posix_time_system time_system_type; 35 typedef time_system_type::time_rep_type time_rep_type; 36 typedef time_system_type::time_duration_type time_duration_type; 37 typedef ptime time_type; 38 //! Construct with date and offset in day ptime(gregorian::date d,time_duration_type td)39 ptime(gregorian::date d,time_duration_type td) : date_time::base_time<time_type,time_system_type>(d,td) 40 {} 41 //! Construct a time at start of the given day (midnight) ptime(gregorian::date d)42 explicit ptime(gregorian::date d) : date_time::base_time<time_type,time_system_type>(d,time_duration_type(0,0,0)) 43 {} 44 //! Copy from time_rep ptime(const time_rep_type & rhs)45 ptime(const time_rep_type& rhs): 46 date_time::base_time<time_type,time_system_type>(rhs) 47 {} 48 //! Construct from special value ptime(const special_values sv)49 ptime(const special_values sv) : date_time::base_time<time_type,time_system_type>(sv) 50 {} 51 #if !defined(DATE_TIME_NO_DEFAULT_CONSTRUCTOR) 52 // Default constructor constructs to not_a_date_time ptime()53 ptime() : date_time::base_time<time_type,time_system_type>(gregorian::date(not_a_date_time), time_duration_type(not_a_date_time)) 54 {} 55 #endif // DATE_TIME_NO_DEFAULT_CONSTRUCTOR 56 57 }; 58 59 60 61 } }//namespace posix_time 62 63 64 #endif 65 66