| #ifndef DATE_TIME_TIME_ITERATOR_HPP___ |
| #define DATE_TIME_TIME_ITERATOR_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, Bart Garst |
| * $Date: 2008-02-27 15:00:24 -0500 (Wed, 27 Feb 2008) $ |
| */ |
| |
| |
| namespace boost { |
| namespace date_time { |
| |
| |
| //! Simple time iterator skeleton class |
| template<class time_type> |
| class time_itr { |
| public: |
| typedef typename time_type::time_duration_type time_duration_type; |
| time_itr(time_type t, time_duration_type d) : current_(t), offset_(d) {}; |
| time_itr& operator++() |
| { |
| current_ = current_ + offset_; |
| return *this; |
| } |
| time_itr& operator--() |
| { |
| current_ = current_ - offset_; |
| return *this; |
| } |
| time_type operator*() {return current_;}; |
| time_type* operator->() {return ¤t_;}; |
| bool operator< (const time_type& t) {return current_ < t;}; |
| bool operator<= (const time_type& t) {return current_ <= t;}; |
| bool operator!= (const time_type& t) {return current_ != t;}; |
| bool operator== (const time_type& t) {return current_ == t;}; |
| bool operator> (const time_type& t) {return current_ > t;}; |
| bool operator>= (const time_type& t) {return current_ >= t;}; |
| |
| private: |
| time_type current_; |
| time_duration_type offset_; |
| }; |
| |
| |
| |
| } }//namespace date_time |
| |
| |
| #endif |