1 #ifndef SERIALIZABLE_HPP 2 #define SERIALIZABLE_HPP 23 class SerializeBufferBase;
43 #if FW_SERIALIZABLE_TO_STRING || FW_ENABLE_TEXT_LOGGING || BUILD_UT 48 friend std::ostream& operator<<(std::ostream& os,
const Serializable& val);
78 #if FW_HAS_16_BIT == 1 82 #if FW_HAS_32_BIT == 1 86 #if FW_HAS_64_BIT == 1 123 #if FW_HAS_16_BIT == 1 128 #if FW_HAS_32_BIT == 1 132 #if FW_HAS_64_BIT == 1 165 #if FW_HAS_16_BIT == 1 169 #if FW_HAS_32_BIT == 1 173 #if FW_HAS_64_BIT == 1 182 "Use serialize(const U8* buff, FwSizeType length, Serialization::t mode) instead");
190 #if FW_HAS_16_BIT == 1 194 #if FW_HAS_32_BIT == 1 198 #if FW_HAS_64_BIT == 1 207 "Use deserialize(U8* buff, FwSizeType& length, Serialization::t mode) instead");
299 (void)SerializeBufferBase::operator=(src);
Serialization/Deserialization operation was successful.
void clear()
clear external buffer
SerializeStatus deserialize(SerializeBufferBase &buffer)
SerializeBufferBase()
default constructor
Deserialization buffer was empty when trying to read more data.
SerializeStatus serialize(SerializeBufferBase &buffer) const
PlatformSizeType FwSizeType
void resetSer()
reset to beginning of buffer to reuse for serialization
SerializeStatus copyRaw(SerializeBufferBase &dest, Serializable::SizeType size)
directly copies buffer without looking for a size in the stream.
SerializeStatus serialize(U8 val)
ExternalSerializeBuffer & operator=(const SerializeBufferBase &src)=delete
deleted copy assignment operator
int8_t I8
8-bit signed integer
No room left in the buffer to serialize data.
Serializable::SizeType m_buffSize
size of external buffer
virtual ~SerializeBufferBase()
destructor
friend class SerializeBufferBaseTester
ExternalSerializeBufferWithDataCopy & operator=(SerializeBufferBase &src)
Deserialization data had incorrect values (unexpected data types)
Serializable::SizeType m_serLoc
current offset in buffer of serialized data
const U8 * getBuffAddrLeft() const
gets address of remaining non-deserialized data.
ExternalSerializeBuffer()
default constructor
SerializeStatus
forward declaration for string
float F32
32-bit floating point
ExternalSerializeBufferWithDataCopy()
Serializable::SizeType getBuffLength() const
returns current buffer size
Serializable::SizeType getBuffLeft() const
returns how much deserialization buffer is left
Include length as first token in serialization.
Data was the wrong format (e.g. wrong packet type)
ExternalSerializeBufferWithMemberCopy(U8 *buffPtr, Serializable::SizeType size)
U8 * m_buff
pointer to external buffer
DEPRECATED(SerializeStatus serialize(const U8 *buff, FwSizeType length, bool noLength), "Use serialize(const U8* buff, FwSizeType length, Serialization::t mode) instead")
SerializeStatus serializeSize(const FwSizeType size)
serialize a size value
Data was left in the buffer, but not enough to deserialize.
External serialize buffer with no copy semantics.
ExternalSerializeBufferWithMemberCopy(const ExternalSerializeBufferWithMemberCopy &src)
SerializeStatus deserializeSize(FwSizeType &size)
deserialize a size value
Serializable()
Default constructor.
void resetDeser()
reset deserialization to beginning
SerializeStatus copyRawOffset(SerializeBufferBase &dest, Serializable::SizeType size)
directly copies buffer without looking for a size in the stream.
Deserialized type ID didn't match.
SerializeStatus moveDeserToOffset(FwSizeType offset)
Moves deserialization to the specified offset.
~ExternalSerializeBufferWithDataCopy()
SerializeStatus moveSerToOffset(FwSizeType offset)
Moves serialization to the specified offset.
uint8_t U8
8-bit unsigned integer
ExternalSerializeBufferWithMemberCopy & operator=(const ExternalSerializeBufferWithMemberCopy &src)
virtual Serializable::SizeType getBuffCapacity() const =0
returns capacity, not current size, of buffer
SerializeStatus deserializeSkip(FwSizeType numBytesToSkip)
Skips the number of specified bytes for deserialization.
void setExtBuffer(U8 *buffPtr, Serializable::SizeType size)
Omit length from serialization.
virtual ~Serializable()
destructor
~ExternalSerializeBuffer()
Serializable::SizeType m_deserLoc
current offset for deserialization
SerializeStatus deserialize(U8 &val)
double F64
64-bit floating point (double). Required for compiler-supplied double promotion.
SerializeBufferBase & operator=(const SerializeBufferBase &src)
copy assignment operator
SerializeStatus setBuff(const U8 *src, Serializable::SizeType length)
sets buffer contents and size
SerializeStatus serializeFrom(U8 val)
serialize 8-bit unsigned int
Serializable::SizeType getBuffCapacity() const
returns capacity, not current size, of buffer
ExternalSerializeBufferWithMemberCopy()
virtual U8 * getBuffAddr()=0
gets buffer address for data filling
virtual SerializeStatus deserializeFrom(SerializeBufferBase &buffer)=0
deserialize contents from buffer
ExternalSerializeBufferWithDataCopy(U8 *buffPtr, Serializable::SizeType size)
~ExternalSerializeBufferWithMemberCopy()
SerializeStatus serializeSkip(FwSizeType numBytesToSkip)
Skips the number of specified bytes for serialization.
U8 * getBuffAddr()
gets buffer address for data filling
SerializeStatus setBuffLen(Serializable::SizeType length)
sets buffer length manually after filling with data
SerializeStatus deserializeTo(U8 &val)
deserialize 8-bit unsigned int
virtual SerializeStatus serializeTo(SerializeBufferBase &buffer) const =0
serialize contents to buffer