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 #ifndef __JAUS_CORE_TIME__H
00042 #define __JAUS_CORE_TIME__H
00043
00044 #include <cxutils/time.h>
00045 #include "jaus/core/types.h"
00046
00047 namespace JAUS
00048 {
00055 class JAUS_CORE_DLL Time : public CxUtils::Time
00056 {
00057 public:
00058 typedef CxUtils::Time::Stamp Stamp;
00059 Time(const bool setCurrentTime = false) : CxUtils::Time(setCurrentTime) {}
00060 Time(const JAUS::Time& t) : CxUtils::Time() { *this = t; }
00061 Time(const CxUtils::Time& t) : CxUtils::Time() { *this = t; }
00062 ~Time() {}
00077 UInt ToUInt() const
00078 {
00079 UInt tstamp = 0;
00080 tstamp |= (UInt)(mDay) << 27;
00081 tstamp |= (UInt)(mHour) << 22;
00082 tstamp |= (UInt)(mMinute) << 16;
00083 tstamp |= (UInt)(mSecond) << 10;
00084 tstamp |= mMilliseconds;
00085 return tstamp;
00086 }
00100 inline Time& SetTime(const UInt tstamp)
00101 {
00102 mMilliseconds = (UInt)(tstamp & 0x3FF);
00103 mSecond = (UInt)((tstamp >> 10) & 0x3F);
00104 mMinute = (UInt)((tstamp >> 16) & 0x3F);
00105 mHour = (UInt)((tstamp >> 22) & 0x1F);
00106 mDay = (UInt)((tstamp >> 27) & 0x1F);
00107 return *this;
00108 }
00109 inline Time& operator=(const Time& time)
00110 {
00111 mDay = time.mDay;
00112 mHour = time.mHour;
00113 mMinute = time.mMinute;
00114 mSecond = time.mSecond;
00115 mMilliseconds = time.mMilliseconds;
00116 return *this;
00117 }
00118 inline Time& operator=(const CxUtils::Time& time)
00119 {
00120 mDay = time.mDay;
00121 mHour = time.mHour;
00122 mMinute = time.mMinute;
00123 mSecond = time.mSecond;
00124 mMilliseconds = time.mMilliseconds;
00125 return *this;
00126 }
00127 inline bool operator==(const Time& time) const
00128 {
00129 if(mDay == time.mDay &&
00130 mHour == time.mHour &&
00131 mMinute == time.mMinute &&
00132 mSecond == time.mSecond &&
00133 mMilliseconds == time.mMilliseconds)
00134 {
00135 return true;
00136 }
00137 return false;
00138 }
00139 inline bool operator!=(const Time& time) const
00140 {
00141 if(mDay != time.mDay ||
00142 mHour != time.mHour ||
00143 mMinute != time.mMinute ||
00144 mSecond != time.mSecond ||
00145 mMilliseconds != time.mMilliseconds)
00146 {
00147 return true;
00148 }
00149 return false;
00150 }
00151 inline bool operator <(const Time& time) const { return ToSeconds() < time.ToSeconds(); }
00152 inline bool operator <=(const Time& time) const { return ToSeconds() <= time.ToSeconds(); }
00153 inline bool operator >(const Time& time) const { return ToSeconds() > time.ToSeconds(); }
00154 inline bool operator >=(const Time& time) const { return ToSeconds() >= time.ToSeconds(); }
00155 };
00156 }
00157
00158 #endif
00159