20 #include "packet-tag-list.h"
21 #include "tag-buffer.h"
23 #include "ns3/fatal-error.h"
33 struct PacketTagList::TagData *PacketTagList::g_free = 0;
34 uint32_t PacketTagList::g_nfree = 0;
36 struct PacketTagList::TagData *
37 PacketTagList::AllocData (
void)
const
40 struct PacketTagList::TagData *retval;
44 g_free = g_free->m_next;
49 retval =
new struct PacketTagList::TagData ();
55 PacketTagList::FreeData (
struct TagData *data)
const
65 data->tid = TypeId ();
69 struct PacketTagList::TagData *
70 PacketTagList::AllocData (
void)
const
73 struct PacketTagList::TagData *retval;
74 retval =
new struct PacketTagList::TagData ();
79 PacketTagList::FreeData (
struct TagData *data)
const
92 for (
struct TagData *cur = m_next; cur != 0; cur = cur->next)
105 struct TagData **prevNext = &start;
106 for (
struct TagData *cur = m_next; cur != 0; cur = cur->next)
118 struct TagData *copy = AllocData ();
119 copy->tid = cur->tid;
124 prevNext = ©->next;
133 PacketTagList::Add (
const Tag &tag)
const
137 for (
struct TagData *cur = m_next; cur != 0; cur = cur->next)
141 struct TagData *head = AllocData ();
149 const_cast<PacketTagList *
> (
this)->m_next = head;
153 PacketTagList::Peek (Tag &tag)
const
156 TypeId tid = tag.GetInstanceTypeId ();
157 for (
struct TagData *cur = m_next; cur != 0; cur = cur->next)
170 const struct PacketTagList::TagData *
171 PacketTagList::Head (
void)
const
#define NS_LOG_FUNCTION(parameters)
virtual uint32_t GetSerializedSize(void) const =0
#define NS_ASSERT(condition)
#define NS_LOG_COMPONENT_DEFINE(name)
#define NS_LOG_FUNCTION_NOARGS()
virtual void Serialize(TagBuffer i) const =0
tag a set of bytes in a packet
virtual void Deserialize(TagBuffer i)=0
#define PACKET_TAG_MAX_SIZE
Tag maximum size The maximum size (in bytes) of a Tag is stored in this constant. ...
virtual TypeId GetInstanceTypeId(void) const =0
a unique identifier for an interface.