[Positioner] Timestamp: elapsed() & owl_timestamp()
New functions added in Timestamp: - elapsed() - elapsed(Timestamp) - operator owl_imestamp()
This commit is contained in:
parent
9c1fc429c9
commit
35265e75c2
|
@ -92,6 +92,31 @@ bool Timestamp::now()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @returns A Timestamp containing the time elapsed, or an empty
|
||||||
|
* Timestamp in case of error.
|
||||||
|
*/
|
||||||
|
Timestamp Timestamp::elapsed() const
|
||||||
|
{
|
||||||
|
Timestamp now ;
|
||||||
|
if (! now.now())
|
||||||
|
return Timestamp() ;
|
||||||
|
|
||||||
|
return elapsed(now) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Timestamp Timestamp::elapsed(const Timestamp &source) const
|
||||||
|
{
|
||||||
|
owl_timestamp
|
||||||
|
d1 = *this,
|
||||||
|
d2 = source,
|
||||||
|
elapsed ;
|
||||||
|
owl_time_elapsed(&d1, &d2, &elapsed) ;
|
||||||
|
return elapsed ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* #timestamp nanosecond field precision is set to ms, but the value
|
* #timestamp nanosecond field precision is set to ms, but the value
|
||||||
* is still in ns.
|
* is still in ns.
|
||||||
|
@ -178,6 +203,15 @@ std::ostream& operator<<(std::ostream &os, const Timestamp &t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
inline Timestamp::operator owl_timestamp(void) const
|
||||||
|
{
|
||||||
|
owl_timestamp ret ;
|
||||||
|
ret.tv_sec = timestamp.tv_sec ;
|
||||||
|
ret.tv_nsec = timestamp.tv_nsec ;
|
||||||
|
return ret ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
size_t hash_value(const Timestamp &source)
|
size_t hash_value(const Timestamp &source)
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,11 +61,18 @@ public:
|
||||||
|
|
||||||
~Timestamp(void) {}
|
~Timestamp(void) {}
|
||||||
|
|
||||||
|
/** @name Operations */
|
||||||
|
//@{
|
||||||
/// \brief Initialises #timestamp at the current time whith a
|
/// \brief Initialises #timestamp at the current time whith a
|
||||||
/// nanosecond precision
|
/// nanosecond precision
|
||||||
bool now(void) ;
|
bool now(void) ;
|
||||||
|
/// Returns the time elapsed until now
|
||||||
|
Timestamp elapsed(void) const ;
|
||||||
|
/// Returns the time elapsed since or until \em source
|
||||||
|
Timestamp elapsed(const Timestamp &source) const ;
|
||||||
|
/// Resets #timestamp
|
||||||
void clear(void) ;
|
void clear(void) ;
|
||||||
|
//@}
|
||||||
|
|
||||||
/** @name Operators */
|
/** @name Operators */
|
||||||
//@{
|
//@{
|
||||||
|
@ -94,6 +101,8 @@ public:
|
||||||
operator const struct timespec&(void) const ;
|
operator const struct timespec&(void) const ;
|
||||||
/// Casts to milliseconds
|
/// Casts to milliseconds
|
||||||
operator uint64_t(void) const ;
|
operator uint64_t(void) const ;
|
||||||
|
/// Casts to the owl_timestamp type from libowlps
|
||||||
|
operator owl_timestamp(void) const ;
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/// Displays a Timestamp
|
/// Displays a Timestamp
|
||||||
|
|
Loading…
Reference in New Issue