12 #ifndef ECL_TIME_TIMESTAMP_BASE_HPP_ 13 #define ECL_TIME_TIMESTAMP_BASE_HPP_ 20 #include <ecl/time_lite/types.hpp> 21 #include <ecl/config/macros.hpp> 22 #include <ecl/exceptions/standard_exception.hpp> 45 explicit TimeStampBase() {};
66 TimeStampBase (
const time_t &seconds,
const long &nanoseconds)
ecl_assert_throw_decl(StandardException);
68 virtual ~TimeStampBase() {}
105 long sec()
const {
return time.tv_sec; }
112 long msec()
const {
return time.tv_nsec/1000000L; }
119 long usec()
const {
return time.tv_nsec/1000; }
126 long nsec()
const {
return time.tv_nsec; }
134 operator double()
const {
return ( time.tv_sec + time.tv_nsec*0.000000001); }
144 bool operator==(
const TimeStampBase& time_stamp);
150 bool operator!=(
const TimeStampBase& time_stamp);
156 bool operator<=(
const TimeStampBase& time_stamp);
162 bool operator>=(
const TimeStampBase& time_stamp);
168 bool operator<(
const TimeStampBase& time_stamp);
174 bool operator>(
const TimeStampBase& time_stamp);
184 TimeStampBase
operator+(
const TimeStampBase& time_stamp );
189 void operator+=(
const TimeStampBase& time_stamp);
213 template <
typename OutputStream>
214 friend OutputStream&
operator << ( OutputStream &ostream ,
const TimeStampBase& time_stamp );
225 template <
typename OutputStream>
228 if ( ( time_stamp.
time.tv_sec == 0 ) && (time_stamp.
time.tv_nsec < 0 ) ) {
231 ostream << time_stamp.
time.tv_sec <<
".";
232 long nanoseconds = std::abs(time_stamp.
time.tv_nsec);
233 if ( nanoseconds < 10 ) {
234 ostream <<
"00000000";
235 }
else if ( nanoseconds < 100 ) {
236 ostream <<
"0000000";
237 }
else if ( nanoseconds < 1000 ) {
239 }
else if ( nanoseconds < 10000 ) {
241 }
else if ( nanoseconds < 100000 ) {
243 }
else if ( nanoseconds < 1000000 ) {
245 }
else if ( nanoseconds < 10000000 ) {
247 }
else if ( nanoseconds < 100000000 ) {
250 ostream << nanoseconds;
TFSIMD_FORCE_INLINE Quaternion operator-(const Quaternion &q)
bool operator>(const TransformStorage &lhs, const TransformStorage &rhs)
OutputStream & operator<<(OutputStream &ostream, const Void void_object)
Output stream operator for Void objects.
This class provides common functionality across platforms for the timestamps.
TFSIMD_FORCE_INLINE Vector3 & operator-=(const Vector3 &v)
bool operator==(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)
TFSIMD_FORCE_INLINE Vector3 & operator+=(const Vector3 &v)
#define ecl_assert_throw_decl(exception)
Assure throw exception declaration.
TFSIMD_FORCE_INLINE Vector3 operator+(const Vector3 &v1, const Vector3 &v2)
bool operator!=(const GTEST_10_TUPLE_(T)&t, const GTEST_10_TUPLE_(U)&u)