12 case BOOL:
return deserialize<bool>();
13 case CHAR:
return deserialize<char>();
15 case UINT8:
return deserialize<uint8_t>();
16 case UINT16:
return deserialize<uint16_t>();
17 case UINT32:
return deserialize<uint32_t>();
18 case UINT64:
return deserialize<uint64_t>();
20 case INT8:
return deserialize<int8_t>();
21 case INT16:
return deserialize<int16_t>();
22 case INT32:
return deserialize<int32_t>();
23 case INT64:
return deserialize<int64_t>();
25 case FLOAT32:
return deserialize<float>();
26 case FLOAT64:
return deserialize<double>();
31 tmp.
sec = deserialize<uint32_t>();
32 tmp.
nsec = deserialize<uint32_t>();
37 std::runtime_error(
"ROS_Deserializer: type not recognized");
45 uint32_t string_size = deserialize<uint32_t>();
49 throw std::runtime_error(
"Buffer overrun in RosMsgParser::ReadFromBuffer");
52 if (string_size == 0) {
57 const char* buffer_ptr =
reinterpret_cast<const char*
>(
_ptr );
58 dst.assign( buffer_ptr, string_size );
66 return deserialize<uint32_t>();
78 throw std::runtime_error(
"Buffer overrun");
104 case BOOL:
return Deserialize<bool>(*_cdr);
105 case CHAR:
return Deserialize<char>(*_cdr);
107 case UINT8:
return Deserialize<uint8_t>(*_cdr);
108 case UINT16:
return Deserialize<uint16_t>(*_cdr);
109 case UINT32:
return Deserialize<uint32_t>(*_cdr);
110 case UINT64:
return Deserialize<uint64_t>(*_cdr);
112 case INT8:
return Deserialize<int8_t>(*_cdr);
113 case INT16:
return Deserialize<int16_t>(*_cdr);
114 case INT32:
return Deserialize<int32_t>(*_cdr);
115 case INT64:
return Deserialize<int64_t>(*_cdr);
117 case FLOAT32:
return Deserialize<float>(*_cdr);
118 case FLOAT64:
return Deserialize<double>(*_cdr);
123 tmp.
sec = Deserialize<uint32_t>(*_cdr);
124 tmp.
nsec = Deserialize<uint32_t>(*_cdr);
129 throw std::runtime_error(
"FastCDR_Deserializer: type not recognized");
137 _cdr->deserialize(dst);
142 return Deserialize<uint32_t>(*_cdr);
147 return reinterpret_cast<const uint8_t *
>(_cdr->getBufferPointer());
159 char* buffer_ptr =
reinterpret_cast<char*
>(
const_cast<uint8_t*
>(
_buffer.data()));
161 _cdr_buffer = std::make_shared<FastBuffer>(buffer_ptr,
_buffer.size());
162 _cdr = std::make_shared<Cdr>(*_cdr_buffer, Cdr::DEFAULT_ENDIAN, Cdr::DDS_CDR);
163 _cdr->read_encapsulation();
virtual void deserializeString(std::string &dst) override
virtual void reset() override
virtual void deserializeString(std::string &dst) override
Span< const uint8_t > _buffer
virtual uint32_t deserializeUInt32() override
virtual uint32_t deserializeUInt32() override
virtual void reset() override
virtual const uint8_t * getCurrentPtr() const override
This class offers an interface to serialize/deserialize some basic types using CDR protocol inside an...
virtual const uint8_t * getCurrentPtr() const override
virtual Variant deserialize(BuiltinType type) override
void jump(size_t bytes) override
static T Deserialize(eprosima::fastcdr::Cdr &cdr)
Cdr & deserialize(uint8_t &octet_t)
This function deserializes an octet.
void jump(size_t bytes) override