HAN-FUN API  1.5.3
This project provides the common implementation of ULE Alliance's HAN-FUN application protocol.
HF::Common::Serializable Struct Referenceabstract

This represents the common interface for message serialization. More...

#include <common.h>

+ Inheritance diagram for HF::Common::Serializable:
+ Collaboration diagram for HF::Common::Serializable:

Public Member Functions

virtual ~Serializable ()
 Destructor.
 
virtual uint16_t size () const =0
 Number bytes needed to serialize the message. More...
 
virtual uint16_t pack (ByteArray &array, uint16_t offset=0) const =0
 Write the object on to a ByteArray so it can be sent over the network. More...
 
virtual uint16_t unpack (const ByteArray &array, uint16_t offset=0)=0
 Read a message from a ByteArray. More...
 

Detailed Description

This represents the common interface for message serialization.

Definition at line 447 of file inc/hanfun/common.h.

Member Function Documentation

◆ pack()

virtual uint16_t HF::Common::Serializable::pack ( ByteArray array,
uint16_t  offset = 0 
) const
pure virtual

Write the object on to a ByteArray so it can be sent over the network.

The buffer passed in MUST have enough size to hold the serialized object, e.g.,

Serializable obj;
ByteArray payload(obj.size());
obj.pack(payload);
Parameters
[in,out]arrayByteArray reference to write the object to.
[in]offsetoffset to start writing to.
Returns
the number of bytes written.

Implemented in HF::Common::SerializableHelper< std::vector< uint8_t > >, HF::Common::SerializableHelper< std::string >, HF::Common::SerializableHelper< Common::ByteArray >, HF::Attributes::Attribute< T, _Owner, EnableIf(IsParent(HF::Interface, _Owner))>, HF::Common::SerializableHelper< T, EnableIf(IsIntegral(T))>, HF::UID::UID, HF::Common::SerializableHelper< T, EnableIf(IsClassPointer(T))>, HF::Common::SerializableHelper< T, typename >, HF::Common::SerializableHelper< int8_t >, HF::Common::SerializableHelper< uint32_t >, HF::Common::SerializableHelper< int16_t >, HF::Common::SerializableHelper< T >, HF::Common::SerializableHelper< HS_Colour >, HF::Common::SerializableHelper< XY_Colour >, HF::Common::SerializableHelper< uint8_t >, HF::Common::SerializableHelper< uint16_t >, HF::Common::SerializableHelper< bool >, HF::UID::URI, HF::Attributes::Attribute< T, _Owner, typename >, HF::Attributes::Attribute< int8_t >, HF::Attributes::Attribute< uint32_t >, HF::Attributes::Attribute< int16_t >, HF::Attributes::Attribute< HS_Colour >, HF::Attributes::Attribute< XY_Colour >, HF::Attributes::Attribute< uint8_t >, HF::Attributes::Attribute< uint16_t >, HF::Attributes::Attribute< bool >, HF::UID::ByteArray< _Class, _size, _type >, HF::UID::ByteArray< DECT, 5, DECT_UID >, HF::UID::ByteArray< MAC, 6, MAC_UID >, HF::UID::NONE, and HF::UID::UID_T.

◆ size()

virtual uint16_t HF::Common::Serializable::size ( ) const
pure virtual

◆ unpack()

virtual uint16_t HF::Common::Serializable::unpack ( const ByteArray array,
uint16_t  offset = 0 
)
pure virtual

Read a message from a ByteArray.

Parameters
[in]arrayByteArray reference to read the message from.
[in]offsetoffset to start reading from.
Returns
the number of bytes read.

Implemented in HF::Common::SerializableHelper< std::vector< uint8_t > >, HF::Common::SerializableHelper< std::string >, HF::Attributes::Attribute< T, _Owner, EnableIf(IsParent(HF::Interface, _Owner))>, HF::Common::SerializableHelper< Common::ByteArray >, HF::Common::SerializableHelper< T, EnableIf(IsIntegral(T))>, HF::UID::UID, HF::Common::SerializableHelper< T, EnableIf(IsClassPointer(T))>, HF::Common::SerializableHelper< T, typename >, HF::Common::SerializableHelper< int8_t >, HF::Common::SerializableHelper< uint32_t >, HF::Common::SerializableHelper< int16_t >, HF::Common::SerializableHelper< T >, HF::Common::SerializableHelper< HS_Colour >, HF::Common::SerializableHelper< XY_Colour >, HF::Common::SerializableHelper< uint8_t >, HF::Common::SerializableHelper< uint16_t >, HF::Common::SerializableHelper< bool >, HF::Attributes::Attribute< T, _Owner, typename >, HF::Attributes::Attribute< int8_t >, HF::Attributes::Attribute< uint32_t >, HF::Attributes::Attribute< int16_t >, HF::Attributes::Attribute< HS_Colour >, HF::Attributes::Attribute< XY_Colour >, HF::Attributes::Attribute< uint8_t >, HF::Attributes::Attribute< uint16_t >, HF::Attributes::Attribute< bool >, HF::UID::URI, HF::UID::ByteArray< _Class, _size, _type >, HF::UID::ByteArray< DECT, 5, DECT_UID >, HF::UID::ByteArray< MAC, 6, MAC_UID >, HF::UID::NONE, and HF::UID::UID_T.


The documentation for this struct was generated from the following file: