16 for (
auto& layer : other.m_layers) {
17 m_layers.insert(layer);
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) {
61 size += layer.second.size();
70 for (
auto layer : osi_layer_range(from, to)) {
72 swap(result[layer], (*
this)[layer]);
79 for (
auto layer : osi_layer_range(from, to)) {
80 (*
this)[layer] = std::move(source[layer]);
81 source[layer] = empty_byte_buffer_convertible;
ChunckPacket is a packet consisting of several memory chunks.
ChunkPacket & merge(ChunkPacket &packet, OsiLayer from, OsiLayer to)
const ByteBufferConvertible & layer(OsiLayer ol) const
ByteBufferConvertible & layer(OsiLayer ol)
std::size_t size(OsiLayer from, OsiLayer to) const
ChunkPacket extract(OsiLayer from, OsiLayer to)