A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::PacketTagList Class Reference

#include <packet-tag-list.h>

+ Collaboration diagram for ns3::PacketTagList:

Classes

struct  TagData

Public Member Functions

 PacketTagList ()
 PacketTagList (PacketTagList const &o)
 ~PacketTagList ()
void Add (Tag const &tag) const
struct PacketTagList::TagDataHead (void) const
PacketTagListoperator= (PacketTagList const &o)
bool Peek (Tag &tag) const
bool Remove (Tag &tag)
void RemoveAll (void)

Private Member Functions

struct PacketTagList::TagDataAllocData (void) const
void FreeData (struct TagData *data) const
bool Remove (TypeId tid)

Private Attributes

struct TagDatam_next

Static Private Attributes

static struct
PacketTagList::TagData
g_free
static uint32_t g_nfree

Detailed Description

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

Constructor & Destructor Documentation

ns3::PacketTagList::PacketTagList ( )
inline

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

ns3::PacketTagList::PacketTagList ( PacketTagList const &  o)
inline

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

References ns3::PacketTagList::TagData::count, and m_next.

ns3::PacketTagList::~PacketTagList ( )
inline

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

References RemoveAll().

+ Here is the call graph for this function:

Member Function Documentation

void ns3::PacketTagList::Add ( Tag const &  tag) const
struct PacketTagList::TagData * ns3::PacketTagList::AllocData ( void  ) const
readprivate

Definition at line 70 of file packet-tag-list.cc.

References NS_LOG_FUNCTION_NOARGS.

Referenced by Add(), and Remove().

+ Here is the caller graph for this function:

void ns3::PacketTagList::FreeData ( struct TagData data) const
private

Definition at line 79 of file packet-tag-list.cc.

References data, and NS_LOG_FUNCTION.

Referenced by RemoveAll().

+ Here is the caller graph for this function:

struct PacketTagList::TagData * ns3::PacketTagList::Head ( void  ) const
read

Definition at line 171 of file packet-tag-list.cc.

References m_next.

Referenced by ns3::Packet::GetPacketTagIterator().

+ Here is the caller graph for this function:

PacketTagList & ns3::PacketTagList::operator= ( PacketTagList const &  o)
inline

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

References ns3::PacketTagList::TagData::count, m_next, and RemoveAll().

+ Here is the call graph for this function:

bool ns3::PacketTagList::Peek ( Tag tag) const

Definition at line 153 of file packet-tag-list.cc.

References ns3::Tag::Deserialize(), ns3::ObjectBase::GetInstanceTypeId(), m_next, ns3::PacketTagList::TagData::next, NS_LOG_FUNCTION, and PACKET_TAG_MAX_SIZE.

Referenced by ns3::Packet::PeekPacketTag().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::PacketTagList::Remove ( Tag tag)

XXX Note: I believe that we could optimize this to avoid copying each TagData located after the target id and just link the already-copied list to the next tag.

Definition at line 87 of file packet-tag-list.cc.

References AllocData(), ns3::PacketTagList::TagData::count, ns3::PacketTagList::TagData::data, ns3::Tag::Deserialize(), ns3::ObjectBase::GetInstanceTypeId(), m_next, ns3::PacketTagList::TagData::next, NS_LOG_FUNCTION, PACKET_TAG_MAX_SIZE, RemoveAll(), visualizer.core::start(), and ns3::PacketTagList::TagData::tid.

Referenced by ns3::Packet::RemovePacketTag().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool ns3::PacketTagList::Remove ( TypeId  tid)
private
void ns3::PacketTagList::RemoveAll ( void  )
inline

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

References ns3::PacketTagList::TagData::count, FreeData(), m_next, and ns3::PacketTagList::TagData::next.

Referenced by operator=(), Remove(), ns3::Packet::RemoveAllPacketTags(), and ~PacketTagList().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

struct PacketTagList::TagData* ns3::PacketTagList::g_free
staticprivate

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

uint32_t ns3::PacketTagList::g_nfree
staticprivate

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

struct TagData* ns3::PacketTagList::m_next
private

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

Referenced by Add(), Head(), operator=(), PacketTagList(), Peek(), Remove(), and RemoveAll().


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