A Discrete-Event Network Simulator
ns3::PacketTagList::TagData Struct Reference

Tree node for sharing serialized tags. More...

#include "packet-tag-list.h"

+ Collaboration diagram for ns3::PacketTagList::TagData:

Public Attributes

uint32_t count
 Number of incoming links. More...
uint8_t data [1]
 Serialization buffer. More...
struct TagDatanext
 Pointer to next in list. More...
uint32_t size
 Size of the data buffer. More...
TypeId tid
 Type of the tag serialized into data. More...

Detailed Description

Tree node for sharing serialized tags.

See PacketTagList for a discussion of the data structure.

Unfortunately this has to be public, because PacketTagIterator::Item::GetTag() needs the data and size values. The Item nested class can't be forward declared, so friending isn't possible.

We use placement new so we can allocate enough room for the Tag type which will be serialized into data. See Object::Aggregates for a similar construction.

Definition at line 141 of file packet-tag-list.h.

Member Data Documentation

uint8_t ns3::PacketTagList::TagData::data[1]
uint32_t ns3::PacketTagList::TagData::size
TypeId ns3::PacketTagList::TagData::tid

Type of the tag serialized into data.

Definition at line 145 of file packet-tag-list.h.

Referenced by ns3::PacketTagList::Add(), ns3::PacketTagList::COWTraverse(), and ns3::PacketTagList::ReplaceWriter().

The documentation for this struct was generated from the following file: