17template <
typename Data>
18class Topic::PackedData
20 static_assert(TopicPayload<Data>);
31 PackedDataHeader header_;
32 uint8_t data_[
sizeof(Data)];
43 operator Data() {
return *
reinterpret_cast<Data*
>(raw.data_); }
48 Data* operator->() {
return reinterpret_cast<Data*
>(raw.data_); }
54 const Data* operator->()
const {
return reinterpret_cast<const Data*
>(raw.data_); }
56 MicrosecondTimestamp GetTimestamp()
const {
return raw.header_.GetTimestamp(); }
58 Message<Data> GetMessage()
const
60 return Message<Data>{GetTimestamp(), *
reinterpret_cast<const Data*
>(raw.data_)};
66template <
typename Data>
69 CheckTopicPayload<Data>();
77 return DumpPacket<SizeLimitMode::NONE>(
RawData(data));
Data data_
存储的数据 (Stored data).
可写原始数据视图 / Mutable raw data view
ErrorCode DumpData(PackedData< Data > &data)
转储数据到 PackedData Dumps data into PackedData format
TopicHandle block_
主题句柄,指向当前主题的内存块 Topic handle pointing to the memory block of the current topic