netLink C++ 11
|
Abstract class to represent one element in a MsgPack stream. More...
#include <Element.h>
Public Member Functions | |
virtual std::unique_ptr< Element > | copy () const =0 |
Creates a deep copy of this element. | |
virtual void | toJSON (std::ostream &stream) const =0 |
Writes a human readable JSON-like string into the given stream. | |
virtual Type | getType () const =0 |
Returns the MsgPack::Type. | |
virtual uint32_t | getSizeInBytes () const |
Returns the size in bytes this MsgPack::Element takes if completely serialized. | |
Protected Member Functions | |
virtual int64_t | startSerialize () |
Returns the initial serializer position in bytes (negative value if there is a header) | |
virtual int64_t | startDeserialize (uint8_t firstByte)=0 |
Reads in one byte and returns the initial deserializer position in bytes (negative value if there is a header) | |
virtual std::streamsize | serialize (int64_t &pos, std::basic_streambuf< char > *streamBuffer, std::streamsize bytes)=0 |
Serializes bytes at the given serializer position pos into streamBuffer. | |
virtual std::streamsize | deserialize (int64_t &pos, std::basic_streambuf< char > *streamBuffer, std::streamsize bytes) |
Deserializes bytes at the given deserializer position pos from streamBuffer. | |
virtual bool | containerDeserialized () |
Returns true if the header of a container is deserialized and reserves the necessary space for its element vector. | |
virtual std::vector< std::unique_ptr< Element > > * | getElementsVector () |
Returns a raw pointer to the element vector of a container. | |
virtual int64_t | getEndPos () const =0 |
Returns the first invalid (de)serializer position. | |
Friends | |
class | Serializer |
class | Deserializer |
Abstract class to represent one element in a MsgPack stream.
|
inlineprotectedvirtual |
Returns true if the header of a container is deserialized and reserves the necessary space for its element vector.
Reimplemented in MsgPack::Array, and MsgPack::Map.
|
pure virtual |
Creates a deep copy of this element.
Implemented in MsgPack::Array, MsgPack::Map, MsgPack::ArrayHeader, MsgPack::MapHeader, MsgPack::Binary, MsgPack::Extended, MsgPack::String, MsgPack::Number, and MsgPack::Primitive.
|
inlineprotectedvirtual |
Deserializes bytes at the given deserializer position pos from streamBuffer.
Reimplemented in MsgPack::Data, MsgPack::Header, and MsgPack::Number.
|
inlineprotectedvirtual |
Returns a raw pointer to the element vector of a container.
Reimplemented in MsgPack::Array, and MsgPack::Map.
|
protectedpure virtual |
Returns the first invalid (de)serializer position.
Implemented in MsgPack::Binary, MsgPack::Extended, MsgPack::String, MsgPack::Header, MsgPack::Number, and MsgPack::Primitive.
|
inlinevirtual |
Returns the size in bytes this MsgPack::Element takes if completely serialized.
Reimplemented in MsgPack::Array, MsgPack::Map, MsgPack::ArrayHeader, MsgPack::MapHeader, and MsgPack::Header.
|
pure virtual |
Returns the MsgPack::Type.
Implemented in MsgPack::Header, MsgPack::Number, and MsgPack::Primitive.
|
protectedpure virtual |
Serializes bytes at the given serializer position pos into streamBuffer.
Implemented in MsgPack::Data, MsgPack::Header, MsgPack::Number, and MsgPack::Primitive.
|
protectedpure virtual |
Reads in one byte and returns the initial deserializer position in bytes (negative value if there is a header)
Implemented in MsgPack::Header, MsgPack::Number, and MsgPack::Primitive.
|
inlineprotectedvirtual |
Returns the initial serializer position in bytes (negative value if there is a header)
Reimplemented in MsgPack::Header.
|
pure virtual |
Writes a human readable JSON-like string into the given stream.
Implemented in MsgPack::Array, MsgPack::Map, MsgPack::ArrayHeader, MsgPack::MapHeader, MsgPack::Binary, MsgPack::Extended, MsgPack::String, MsgPack::Number, and MsgPack::Primitive.