Vanetza
 
Loading...
Searching...
No Matches
vanetza::ChunkPacket Class Reference

ChunckPacket is a packet consisting of several memory chunks. More...

#include <chunk_packet.hpp>

Public Member Functions

 ChunkPacket (const ChunkPacket &)
 
ChunkPacketoperator= (const ChunkPacket &)
 
 ChunkPacket (ChunkPacket &&)=default
 
ChunkPacketoperator= (ChunkPacket &&)=default
 
ByteBufferConvertiblelayer (OsiLayer ol)
 
const ByteBufferConvertiblelayer (OsiLayer ol) const
 
ByteBufferConvertibleoperator[] (OsiLayer ol)
 
const ByteBufferConvertibleoperator[] (OsiLayer ol) const
 
std::size_t size () const
 
std::size_t size (OsiLayer from, OsiLayer to) const
 
ChunkPacket extract (OsiLayer from, OsiLayer to)
 
ChunkPacketmerge (ChunkPacket &packet, OsiLayer from, OsiLayer to)
 

Private Types

typedef std::map< OsiLayer, ByteBufferConvertiblemap_type
 

Private Attributes

map_type m_layers
 

Detailed Description

ChunckPacket is a packet consisting of several memory chunks.

ChunkPacket is the preferred packet type when it is getting assembled step by step. Each layer can easily add further bytes without caring about other layers at all.

Definition at line 18 of file chunk_packet.hpp.

Member Typedef Documentation

◆ map_type

typedef std::map<OsiLayer, ByteBufferConvertible> vanetza::ChunkPacket::map_type
private

Definition at line 85 of file chunk_packet.hpp.

Constructor & Destructor Documentation

◆ ChunkPacket() [1/2]

vanetza::ChunkPacket::ChunkPacket ( )

Definition at line 10 of file chunk_packet.cpp.

◆ ChunkPacket() [2/2]

vanetza::ChunkPacket::ChunkPacket ( const ChunkPacket other)

Definition at line 14 of file chunk_packet.cpp.

Member Function Documentation

◆ extract()

ChunkPacket vanetza::ChunkPacket::extract ( OsiLayer  from,
OsiLayer  to 
)

Extract a range of layers from this packet to a new one. The respective layers of this ChunkPacket are empty afterwards.

Parameters
fromstart at this layer (inclusive)
tostop at this layer (inclusive)
Returns
new packet containing layers of specified range

Definition at line 67 of file chunk_packet.cpp.

◆ layer() [1/2]

ByteBufferConvertible & vanetza::ChunkPacket::layer ( OsiLayer  ol)

Access ByteBufferConvertible of specific layer

Parameters
layerol Access this layer's data
Returns
ByteBufferConvertible, might be empty

Definition at line 28 of file chunk_packet.cpp.

◆ layer() [2/2]

const ByteBufferConvertible & vanetza::ChunkPacket::layer ( OsiLayer  ol) const

Access ByteBufferConvertible of specific layer

Parameters
layerol Access this layer's data
Returns
ByteBufferConvertible, might be empty

Definition at line 33 of file chunk_packet.cpp.

◆ merge()

ChunkPacket & vanetza::ChunkPacket::merge ( ChunkPacket packet,
OsiLayer  from,
OsiLayer  to 
)

Merge layers from another packet

Parameters
packetsource packet (layers will be moved from there)
fromstart at this layer (inclusive)
tostop at this layer (inclusive)
Returns
reference to this packet

Definition at line 77 of file chunk_packet.cpp.

◆ operator=()

ChunkPacket & vanetza::ChunkPacket::operator= ( const ChunkPacket other)

Definition at line 21 of file chunk_packet.cpp.

◆ operator[]() [1/2]

ByteBufferConvertible & vanetza::ChunkPacket::operator[] ( OsiLayer  ol)
inline

Access ByteBufferConvertible of specific layer

Parameters
layerol Access this layer's data
Returns
ByteBufferConvertible, might be empty

Definition at line 41 of file chunk_packet.hpp.

◆ operator[]() [2/2]

const ByteBufferConvertible & vanetza::ChunkPacket::operator[] ( OsiLayer  ol) const
inline

Access ByteBufferConvertible of specific layer

Parameters
layerol Access this layer's data
Returns
ByteBufferConvertible, might be empty

Definition at line 47 of file chunk_packet.hpp.

◆ size() [1/2]

std::size_t vanetza::ChunkPacket::size ( ) const

Get size of whole payload

Returns
payload size in bytes

Definition at line 44 of file chunk_packet.cpp.

◆ size() [2/2]

std::size_t vanetza::ChunkPacket::size ( OsiLayer  from,
OsiLayer  to 
) const

Get size of payload from specified layer range

Parameters
fromstart counting including this layer
tostop counting including this layer
Returns
payload size in bytes

Definition at line 55 of file chunk_packet.cpp.

Member Data Documentation

◆ m_layers

map_type vanetza::ChunkPacket::m_layers
private

Definition at line 86 of file chunk_packet.hpp.


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