snooze_pos.hpp
Go to the documentation of this file.
00001 
00008 /*****************************************************************************
00009 ** Ifdefs
00010 *****************************************************************************/
00011 
00012 #ifndef ECL_TIME_SNOOZE_POS_HPP_
00013 #define ECL_TIME_SNOOZE_POS_HPP_
00014 
00015 /*****************************************************************************
00016 ** Platform Check
00017 *****************************************************************************/
00018 
00019 #include <ecl/config.hpp>
00020 #if defined(ECL_IS_POSIX)
00021 
00022 /*****************************************************************************
00023 ** Includes
00024 *****************************************************************************/
00025 
00026 #include "duration.hpp"
00027 #include <ecl/config/macros.hpp>
00028 #include <ecl/time_lite/types.hpp>
00029 
00030 /*****************************************************************************
00031 ** Namespaces
00032 *****************************************************************************/
00033 
00034 namespace ecl {
00035 
00036 /*****************************************************************************
00037 ** Classes [Snooze]
00038 *****************************************************************************/
00039 
00092 class ECL_PUBLIC Snooze {
00093 public:
00094         /*********************
00095         ** C&D's
00096         **********************/
00103         Snooze();
00117         Snooze (const Duration &time, const bool& validate = false );
00118         virtual ~Snooze() {}
00119 
00120         /*********************
00121         ** Usage Methods
00122         **********************/
00136         void period(const Duration &time, const bool& validate = false);
00144         Duration period() { return Duration(time_period.tv_sec,time_period.tv_nsec); }
00152         void initialise();
00163         void operator()();
00164 
00165 protected:
00166         /*********************
00167         ** Internal Methods
00168         **********************/
00175         void add_period();
00182         void validate();
00183 
00184         /*********************
00185         ** Internal Variables
00186         **********************/
00187         TimeStructure time_value;
00188         TimeStructure time_period;
00189         long wrap_value_ns;
00190         bool validate_times;
00191 
00192 };
00193 
00194 } // namespace ecl
00195 
00196 #endif /* ECL_IS_POSIX */
00197 #endif /* ECL_TIME_SNOOZE_POS_HPP_ */


ecl_time
Author(s): Daniel Stonier (d.stonier@gmail.com)
autogenerated on Thu Jan 2 2014 11:12:43