18#ifndef O2_DCS_DATAPOINT_COMPOSITE_OBJECT_H
19#define O2_DCS_DATAPOINT_COMPOSITE_OBJECT_H
141 inline void set(
const uint64_t*
const data)
noexcept
144 this->data.
set(
data + 8,
id.get_type());
164 (uint64_t*)&dpval.payload_pt1,
181 switch (
id.get_type()) {
191 return (
void*)&
data.payload_pt1;
204 throw std::domain_error(
"Illegal DeliveryType.");
221 os << dpcom.id <<
";" << dpcom.data <<
";";
231 converter.raw_data = dpcom.data.payload_pt1;
232 switch (dpcom.id.get_type()) {
237 return os << converter.int_value;
240 return os << converter.uint_value;
243 return os << (converter.bool_value ?
"True" :
"False");
246 return os << converter.char_value;
249 return os << converter.float_value;
252 return os << converter.double_value;
255 return os << std::string((
char*)&dpcom.data.payload_pt1);
262 std::time_t ts((dpcom.data.payload_pt1) >> 32);
263 std::strftime(
buffer, 32,
"%FT%T", std::gmtime(&ts));
264 return os << std::string(
buffer) <<
"." << std::setw(3) << std::setfill(
'0') <<
std::to_string((dpcom.data.payload_pt1 & 0x00000000FFFF0000) >> 16)
267 return os <<
"[Timestamps not supported on this platform.]";
274 (
char*)&dpcom.data.payload_pt1, 56);
318struct is_trivially_copyable<
o2::dcs::DataPointCompositeObject> : std::true_type {
static void FILL(const DataPointIdentifier &dpid, const std::string &alias, const DeliveryType type) noexcept
std::string to_hex_little_endian(const char *const start, size_t length) noexcept
T getValue(const DataPointCompositeObject &dpcom)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
Defining DataPointCompositeObject explicitly as copiable.
std::string to_string(gsl::span< T, Size > span)
void * dim_buffer() const
~DataPointCompositeObject() noexcept=default
void set(const uint64_t *const data) noexcept
DataPointCompositeObject & operator=(const DataPointCompositeObject &src) noexcept
DataPointCompositeObject(const DataPointCompositeObject &src) noexcept
DataPointCompositeObject(const DataPointIdentifier &id, const DataPointValue &data) noexcept
ClassDefNV(DataPointCompositeObject, 1)
bool operator==(const DataPointCompositeObject &other) const noexcept
friend std::ostream & operator<<(std::ostream &os, const DataPointCompositeObject &dpcom) noexcept
DataPointCompositeObject() noexcept
void set(const DataPointIdentifier &id, DataPointValue &data) noexcept
const DataPointIdentifier id
bool operator!=(const DataPointCompositeObject &other) const noexcept
void update(const DataPointValue &dpval) noexcept
void set(const uint16_t flags, const uint16_t milliseconds, const uint32_t seconds, const uint64_t *const payload, const DeliveryType type)
static constexpr uint16_t CONTROL_MASK
VectorOfTObjectPtrs other