netLink C++ 11
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
MsgPack::Map Class Reference

MsgPack::MapHeader representing the header and the content of a map. More...

#include <Container.h>

Inheritance diagram for MsgPack::Map:
MsgPack::MapHeader MsgPack::Header MsgPack::Element

Public Member Functions

 Map (std::vector< std::unique_ptr< Element > > &&elements)
 Initialize from element vector (move semantic)
 
 Map (std::map< std::string, std::unique_ptr< Element > > &&elements)
 
std::unique_ptr< Elementcopy () const
 Creates a deep copy of this element.
 
void toJSON (std::ostream &stream) const
 Writes a human readable JSON-like string into the given stream.
 
uint32_t getSizeInBytes () const
 Returns the size in bytes this MsgPack::Element takes if completely serialized.
 
std::vector< std::unique_ptr< Element > > * getElementsVector ()
 Returns a raw pointer to the element vector of a container.
 
std::map< std::string, Element * > getElementsMap () const
 
std::pair< String *, Element * > getEntry (uint32_t index) const
 Returns the entry pair at the index or nullptr if out of bounds.
 
StringgetKey (uint32_t index) const
 Returns the key at the index or nullptr if out of bounds.
 
ElementgetValue (uint32_t index) const
 Returns the value at the index or nullptr if out of bounds.
 
- Public Member Functions inherited from MsgPack::MapHeader
 MapHeader (uint32_t len)
 Initialize with len key/value pairs to follow.
 
std::unique_ptr< Elementcopy () const
 Creates a deep copy of this element.
 
void toJSON (std::ostream &stream) const
 Writes a human readable JSON-like string into the given stream.
 
uint32_t getSizeInBytes () const
 Returns the size in bytes this MsgPack::Element takes if completely serialized.
 
uint32_t getLength () const
 Returns the count of elements in the container.
 
- Public Member Functions inherited from MsgPack::Header
Type getType () const
 Returns the MsgPack::Type.
 
uint32_t getSizeInBytes () const
 Returns the size in bytes this MsgPack::Element takes if completely serialized.
 
virtual uint32_t getLength () const
 Returns the content length in bytes.
 
virtual std::unique_ptr< Elementcopy () 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

bool containerDeserialized ()
 Returns true if the header of a container is deserialized and reserves the necessary space for its element vector.
 
- Protected Member Functions inherited from MsgPack::MapHeader
int64_t getHeaderLength () const
 Returns the size of the header in bytes.
 
- Protected Member Functions inherited from MsgPack::Header
int64_t startSerialize ()
 Returns the initial serializer position in bytes (negative value if there is a header)
 
int64_t startDeserialize (uint8_t firstByte)
 Reads in one byte and returns the initial deserializer position in bytes (negative value if there is a header)
 
std::streamsize serialize (int64_t &pos, std::basic_streambuf< char > *streamBuffer, std::streamsize bytes)
 Serializes bytes at the given serializer position pos into streamBuffer.
 
std::streamsize deserialize (int64_t &pos, std::basic_streambuf< char > *streamBuffer, std::streamsize bytes)
 Deserializes bytes at the given deserializer position pos from streamBuffer.
 
int64_t getEndPos () const
 Returns the first invalid (de)serializer position.
 
virtual int64_t getHeaderLength () const =0
 Returns the size of the header in bytes.
 
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.
 

Protected Attributes

std::vector< std::unique_ptr< Element > > elements
 Element vector is key/value interlaced.
 
- Protected Attributes inherited from MsgPack::Header
char header [5]
 Internal buffer of the header.
 

Friends

class Serializer
 
class Deserializer
 

Detailed Description

MsgPack::MapHeader representing the header and the content of a map.

Member Function Documentation

◆ containerDeserialized()

bool MsgPack::Map::containerDeserialized ( )
protectedvirtual

Returns true if the header of a container is deserialized and reserves the necessary space for its element vector.

Reimplemented from MsgPack::Element.

◆ copy()

std::unique_ptr< Element > MsgPack::Map::copy ( ) const
virtual

Creates a deep copy of this element.

Implements MsgPack::Element.

◆ getElementsMap()

std::map< std::string, Element * > MsgPack::Map::getElementsMap ( ) const

Generates a map of the element vector

Warning
Life time of return value depends on this object

◆ getElementsVector()

std::vector< std::unique_ptr< Element > > * MsgPack::Map::getElementsVector ( )
virtual

Returns a raw pointer to the element vector of a container.

Reimplemented from MsgPack::Element.

◆ getSizeInBytes()

uint32_t MsgPack::Map::getSizeInBytes ( ) const
virtual

Returns the size in bytes this MsgPack::Element takes if completely serialized.

Reimplemented from MsgPack::Header.

◆ toJSON()

void MsgPack::Map::toJSON ( std::ostream &  stream) const
virtual

Writes a human readable JSON-like string into the given stream.

Implements MsgPack::Element.


The documentation for this class was generated from the following files: