 |
F´ Flight Software - C/C++ Documentation
NASA-v2.0.1
A framework for building embedded system applications to NASA flight quality standards.
|
Go to the documentation of this file. 1 #ifndef SERIALIZABLE_HPP
2 #define SERIALIZABLE_HPP
24 class SerializeBufferBase;
30 #if FW_SERIALIZABLE_TO_STRING || BUILD_UT
35 friend std::ostream& operator<<(std::ostream& os,
const Serializable& val);
SerializeBufferBase()
default constructor
@ FW_DESERIALIZE_BUFFER_EMPTY
Deserialization buffer was empty when trying to read more data.
SerializeStatus
forward declaration for string
@ FW_DESERIALIZE_SIZE_MISMATCH
Data was left in in the buffer, but not enough to deserialize.
void resetDeser(void)
reset deserialization to beginning
@ FW_SERIALIZE_FORMAT_ERROR
Data was the wrong format (e.g. wrong packet type)
SerializeStatus serialize(U8 val)
serialize 8-bit unsigned int
SerializeStatus copyRaw(SerializeBufferBase &dest, NATIVE_UINT_TYPE size)
directly copies buffer without looking for a size in the stream.
uint8_t U8
8-bit unsigned integer
virtual ~SerializeBufferBase()
destructor
void resetSer(void)
reset to beginning of buffer to reuse for serialization
@ FW_SERIALIZE_OK
Serialization/Deserialization operation was successful.
void clear(void)
clear external buffer
NATIVE_UINT_TYPE getBuffLeft() const
returns how much deserialization buffer is left
virtual U8 * getBuffAddr(void)=0
gets buffer address for data filling
virtual NATIVE_UINT_TYPE getBuffCapacity(void) const =0
returns capacity, not current size, of buffer
SerializeStatus deserializeSkip(NATIVE_UINT_TYPE numBytesToSkip)
Skips the number of specified bytes for deserialization.
int8_t I8
8-bit signed integer
@ FW_DESERIALIZE_FORMAT_ERROR
Deserialization data had incorrect values (unexpected data types)
float F32
32-bit floating point
virtual ~Serializable()
destructor
virtual SerializeStatus deserialize(SerializeBufferBase &buffer)=0
deserialize to contents
SerializeStatus setBuffLen(NATIVE_UINT_TYPE length)
sets buffer length manually after filling with data
@ FW_SERIALIZE_NO_ROOM_LEFT
No room left in the buffer to serialize data.
unsigned int NATIVE_UINT_TYPE
native unsigned integer type declaration
void setExtBuffer(U8 *buffPtr, NATIVE_UINT_TYPE size)
Set the external buffer.
NATIVE_UINT_TYPE getBuffLength() const
returns current buffer size
U8 * getBuffAddrSer(void)
gets address of end of serialization. DANGEROUS! Need to know max buffer size and adjust when done
NATIVE_UINT_TYPE getBuffCapacity(void) const
returns capacity, not current size, of buffer
Serializable()
Default constructor.
SerializeStatus deserialize(U8 &val)
deserialize 8-bit unsigned int
@ FW_DESERIALIZE_TYPE_MISMATCH
Deserialized type ID didn't match.
SerializeStatus setBuff(const U8 *src, NATIVE_UINT_TYPE length)
sets buffer contents and size
const SerializeBufferBase & operator=(const SerializeBufferBase &src)
equal operator
SerializeStatus copyRawOffset(SerializeBufferBase &dest, NATIVE_UINT_TYPE size)
directly copies buffer without looking for a size in the stream.
virtual SerializeStatus serialize(SerializeBufferBase &buffer) const =0
serialize contents
ExternalSerializeBuffer()
default constructor
Declares ISF basic types.
U8 * getBuffAddr(void)
gets buffer address for data filling
const U8 * getBuffAddrLeft(void) const
gets address of remaining non-deserialized data.