28#include <IceUtil/Time.h>
32#include <ArmarXCore/interface/observers/Timestamp.h>
67 template <
class... Ts>
70 std::chrono::duration_cast<
std::chrono::microseconds>(duration).count())
74 template <
class... Ts>
93 clone(
const Ice::Current&
c = Ice::emptyCurrent)
const override
99 output(
const Ice::Current&
c = Ice::emptyCurrent)
const override
102 s << IceUtil::Time::microSeconds(
timestamp).toDateTime();
107 getType(
const Ice::Current&
c = Ice::emptyCurrent)
const override
113 validate(
const Ice::Current&
c = Ice::emptyCurrent)
override
121 stream <<
"TimestampVariant: " << std::endl << rhs.
output() << std::endl;
134 return IceUtil::Time::microSeconds(
timestamp);
139 void serialize(
const armarx::ObjectSerializerBasePtr& serializer,
140 const ::Ice::Current& = Ice::emptyCurrent)
const override;
141 void deserialize(
const armarx::ObjectSerializerBasePtr& serializer,
142 const ::Ice::Current& = Ice::emptyCurrent)
override;
std::ostream & operator<<(std::ostream &strm, const AbstractInterface &a)
#define ARMARXCORE_IMPORT_EXPORT
static IceUtil::Time GetTime(TimeMode timeMode=TimeMode::VirtualTime)
Get the current time.
Implements a Variant type for timestamps.
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
TimestampVariant(std::chrono::time_point< Ts... > timepoint)
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
TimestampVariant(std::chrono::duration< Ts... > duration)
Ice::ObjectPtr ice_clone() const override
static TimestampVariantPtr nowPtr()
static VariantTypeId addTypeName(const std::string &typeName)
Register a new type for the use in a Variant.
const VariantTypeId Timestamp
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< TimestampVariant > TimestampVariantPtr