$search
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_ */