1 #ifndef DESERIALIZER_HPP 2 #define DESERIALIZER_HPP 33 virtual void jump(
size_t bytes) = 0;
39 virtual void deserializeString(std::string& out) = 0;
41 virtual uint32_t deserializeUInt32() = 0;
43 virtual const uint8_t* getCurrentPtr()
const = 0;
47 return _buffer.size() - ( getCurrentPtr() - _buffer.data() );
51 virtual void reset() = 0;
66 virtual void deserializeString(std::string&
dst)
override;
68 virtual uint32_t deserializeUInt32()
override;
70 virtual const uint8_t* getCurrentPtr()
const override;
72 void jump(
size_t bytes)
override;
74 virtual void reset()
override;
84 if (
sizeof(T) > _bytes_left )
86 throw std::runtime_error(
"Buffer overrun in Deserializer");
88 out = ( *(
reinterpret_cast<const T*
>( _ptr )) );
89 _bytes_left -=
sizeof(T);
105 virtual void deserializeString(std::string&
dst)
override;
107 virtual uint32_t deserializeUInt32()
override;
109 virtual const uint8_t* getCurrentPtr()
const override;
111 void jump(
size_t bytes)
override;
113 virtual void reset()
override;
118 std::shared_ptr<eprosima::fastcdr::Cdr>
_cdr;
126 #endif // DESERIALIZER_HPP
virtual void init(Span< const uint8_t > buffer)
Span< const uint8_t > _buffer
virtual size_t bytesLeft() const
std::shared_ptr< eprosima::fastcdr::Cdr > _cdr
static unordered_set< string > deserialize(const QDomElement &elt)
std::shared_ptr< eprosima::fastcdr::FastBuffer > _cdr_buffer