Go to the documentation of this file.00001
00008
00009
00010
00011
00012 #ifndef ECL_TIME_SNOOZE_POS_HPP_
00013 #define ECL_TIME_SNOOZE_POS_HPP_
00014
00015
00016
00017
00018
00019 #include <ecl/config.hpp>
00020 #if defined(ECL_IS_POSIX)
00021
00022
00023
00024
00025
00026 #include "duration.hpp"
00027 #include <ecl/config/macros.hpp>
00028 #include <ecl/time_lite/types.hpp>
00029
00030
00031
00032
00033
00034 namespace ecl {
00035
00036
00037
00038
00039
00092 class ECL_PUBLIC Snooze {
00093 public:
00094
00095
00096
00103 Snooze();
00117 Snooze (const Duration &time, const bool& validate = false );
00118 virtual ~Snooze() {}
00119
00120
00121
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
00168
00175 void add_period();
00182 void validate();
00183
00184
00185
00186
00187 TimeStructure time_value;
00188 TimeStructure time_period;
00189 long wrap_value_ns;
00190 bool validate_times;
00191
00192 };
00193
00194 }
00195
00196 #endif
00197 #endif