Time.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef __TIME_H_2DD6595E115022__
00043 #define __TIME_H_2DD6595E115022__
00044
00045
00046 #ifdef __AVR__
00047
00048
00049 namespace famouso {
00050 namespace mw {
00051 namespace afp {
00052 namespace shared {
00053
00054
00055
00059 class Time {
00060 int t;
00061 public:
00062
00063
00064 template <typename Time_Type>
00065 static void get_current_time(Time_Type & time) {
00066 int Warning__Time_class_for_AVR_platform_is_dummy_implementation__Need_timing_framework;
00067 static int curr = 0;
00068 time.t = curr;
00069 curr++;
00070 }
00071
00072 template <typename Time_Type>
00073 static Time_Type current() {
00074 Time t;
00075 get_current_time(t);
00076 return t;
00077 }
00078
00079 Time & add_sec(unsigned int s) {
00080 t += s;
00081 return *this;
00082 }
00083
00084 uint64_t get_usec() const {
00085 return 0;
00086 }
00087
00088 uint64_t get_sec() const {
00089 return t;
00090 }
00091
00092 bool operator<(const Time & t2) const {
00093 return t < t2.t;
00094 }
00095 };
00096
00097 }
00098 }
00099 }
00100 }
00101
00102 #else
00103
00104 #include "boost/thread/xtime.hpp"
00105
00106
00107 namespace famouso {
00108 namespace mw {
00109 namespace afp {
00110 namespace shared {
00111
00115 class Time {
00116 boost::xtime time;
00117 public:
00118
00119 static void get_current_time(Time & time) {
00120 boost::xtime_get(&time.time, boost::TIME_UTC);
00121 }
00122
00123 static Time current() {
00124 Time t;
00125 get_current_time(t);
00126 return t;
00127 }
00128
00129 Time & add_sec(unsigned int s) {
00130 time.sec += s;
00131 return *this;
00132 }
00133
00134 Time & add_usec(unsigned int us) {
00135 time.nsec += us * 1000;
00136 return *this;
00137 }
00138
00139 uint64_t get_usec() const {
00140 return time.sec * 1000000 + time.nsec / 1000;
00141 }
00142
00143 uint64_t get_sec() const {
00144 return time.sec;
00145 }
00146
00147 bool operator<(const Time & t2) const {
00148 return boost::xtime_cmp(time, t2.time) < 0;
00149 }
00150
00151 };
00152
00153 }
00154 }
00155 }
00156 }
00157
00158 #endif
00159
00160
00161 #endif // __TIME_H_2DD6595E115022__
00162