1#include "chunk_packet.hpp"
2#include "cohesive_packet.hpp"
8static const ByteBufferConvertible empty_byte_buffer_convertible;
10ChunkPacket::ChunkPacket()
14ChunkPacket::ChunkPacket(
const ChunkPacket& other)
16 for (
auto&
layer : other.m_layers) {
17 m_layers.insert(
layer);
21ChunkPacket& ChunkPacket::operator=(
const ChunkPacket& other)
23 ChunkPacket tmp = other;
24 m_layers.swap(tmp.m_layers);
30 return m_layers[
layer];
35 auto found = m_layers.find(
layer);
36 if (found != m_layers.end()) {
37 assert(found->first ==
layer);
40 return empty_byte_buffer_convertible;
47 for(
auto& it : m_layers)
49 size += it.second.size();
59 for (
auto&
layer : m_layers) {
60 if (
layer.first >= from &&
layer.first <= to) {
70 for (
auto layer : osi_layer_range(from, to)) {
79 for (
auto layer : osi_layer_range(from, to)) {
81 source[
layer] = empty_byte_buffer_convertible;
ChunckPacket is a packet consisting of several memory chunks.
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
ByteBufferConvertible & layer(OsiLayer ol)
std::size_t size(OsiLayer from, OsiLayer to) const
ChunkPacket extract(OsiLayer from, OsiLayer to)