12 #ifndef ECL_TIME_TIMESTAMP_BASE_HPP_ 13 #define ECL_TIME_TIMESTAMP_BASE_HPP_ 66 TimeStampBase (
const time_t &seconds,
const long &nanoseconds);
83 const TimeStampBase& stamp (
const double& decimal_time_value);
94 const TimeStampBase& stamp (
const time_t &seconds,
const long &nanoseconds);
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); }
213 template <
typename OutputStream>
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;
Embedded control libraries.
long nsec() const
Nanoseconds component (after removing seconds).
This class provides common functionality across platforms for the timestamps.
long msec() const
Milliseconds component (after removing seconds).
long usec() const
Microseconds component (after removing seconds).
OutputStream & operator<<(OutputStream &ostream, const TimeStampBase &time_stamp)
long sec() const
Seconds component.