ns3::PacketMetadata Class Reference

#include <packet-metadata.h>

Collaboration diagram for ns3::PacketMetadata:
Collaboration graph
[legend]

List of all members.

Classes

struct  Data
class  DataFreeList
struct  ExtraItem
struct  Item
class  ItemIterator
struct  SmallItem

Public Member Functions

 PacketMetadata (uint32_t uid, uint32_t size)
 PacketMetadata (PacketMetadata const &o)
PacketMetadataoperator= (PacketMetadata const &o)
 ~PacketMetadata ()
void AddHeader (Header const &header, uint32_t size)
void RemoveHeader (Header const &header, uint32_t size)
void AddTrailer (Trailer const &trailer, uint32_t size)
void RemoveTrailer (Trailer const &trailer, uint32_t size)
PacketMetadata CreateFragment (uint32_t start, uint32_t end) const
void AddAtEnd (PacketMetadata const &o)
void AddPaddingAtEnd (uint32_t end)
void RemoveAtStart (uint32_t start)
void RemoveAtEnd (uint32_t end)
uint32_t GetUid (void) const
uint32_t GetSerializedSize (void) const
void Serialize (Buffer::Iterator i, uint32_t size) const
uint32_t Deserialize (Buffer::Iterator i)
ItemIterator BeginItem (Buffer buffer) const

Static Public Member Functions

static void Enable (void)
static void EnableChecking (void)

Private Member Functions

friend DataFreeList::~DataFreeList ()
 PacketMetadata ()
uint16_t AddSmall (const PacketMetadata::SmallItem *item)
uint16_t AddBig (uint32_t head, uint32_t tail, const PacketMetadata::SmallItem *item, const PacketMetadata::ExtraItem *extraItem)
void ReplaceTail (PacketMetadata::SmallItem *item, PacketMetadata::ExtraItem *extraItem, uint32_t available)
void UpdateHead (uint16_t written)
void UpdateTail (uint16_t written)
uint32_t GetUleb128Size (uint32_t value) const
uint32_t ReadUleb128 (const uint8_t **pBuffer) const
void Append16 (uint16_t value, uint8_t *buffer)
void Append32 (uint32_t value, uint8_t *buffer)
void AppendValue (uint32_t value, uint8_t *buffer)
void AppendValueExtra (uint32_t value, uint8_t *buffer)
void Reserve (uint32_t n)
void ReserveCopy (uint32_t n)
uint32_t GetTotalSize (void) const
uint32_t ReadItems (uint16_t current, struct PacketMetadata::SmallItem *item, struct PacketMetadata::ExtraItem *extraItem) const
void DoAddHeader (uint32_t uid, uint32_t size)

Static Private Member Functions

static struct
PacketMetadata::Data
Create (uint32_t size)
static void Recycle (struct PacketMetadata::Data *data)
static struct
PacketMetadata::Data
Allocate (uint32_t n)
static void Deallocate (struct PacketMetadata::Data *data)

Private Attributes

struct Datam_data
uint16_t m_head
uint16_t m_tail
uint16_t m_used
uint32_t m_packetUid

Static Private Attributes

static DataFreeList m_freeList
static bool m_enable = false
static bool m_enableChecking = false
static bool m_metadataSkipped = false
static uint32_t m_maxSize = 0
static uint16_t m_chunkUid = 0

Friends

class ItemIterator

Detailed Description

Definition at line 78 of file packet-metadata.h.


Constructor & Destructor Documentation

ns3::PacketMetadata::PacketMetadata ( uint32_t  uid,
uint32_t  size 
) [inline]

Definition at line 307 of file packet-metadata.h.

References DoAddHeader(), ns3::PacketMetadata::Data::m_data, and m_data.

ns3::PacketMetadata::PacketMetadata ( PacketMetadata const &  o  )  [inline]

Definition at line 320 of file packet-metadata.h.

References ns3::PacketMetadata::Data::m_count, m_data, and NS_ASSERT.

ns3::PacketMetadata::~PacketMetadata (  )  [inline]

Definition at line 352 of file packet-metadata.h.

References ns3::PacketMetadata::Data::m_count, m_data, NS_ASSERT, and Recycle().

ns3::PacketMetadata::DataFreeList::~DataFreeList (  )  [private]
ns3::PacketMetadata::PacketMetadata (  )  [private]

Member Function Documentation

void ns3::PacketMetadata::AddAtEnd ( PacketMetadata const &  o  ) 
uint16_t ns3::PacketMetadata::AddBig ( uint32_t  head,
uint32_t  tail,
const PacketMetadata::SmallItem item,
const PacketMetadata::ExtraItem extraItem 
) [private]
void ns3::PacketMetadata::AddHeader ( Header const &  header,
uint32_t  size 
)
void ns3::PacketMetadata::AddPaddingAtEnd ( uint32_t  end  ) 

Definition at line 808 of file packet-metadata.cc.

References m_enable, and m_metadataSkipped.

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

uint16_t ns3::PacketMetadata::AddSmall ( const PacketMetadata::SmallItem item  )  [inline, private]

Referenced by AddTrailer(), and DoAddHeader().

void ns3::PacketMetadata::AddTrailer ( Trailer const &  trailer,
uint32_t  size 
)
struct PacketMetadata::Data * ns3::PacketMetadata::Allocate ( uint32_t  n  )  [static, read, private]
void ns3::PacketMetadata::Append16 ( uint16_t  value,
uint8_t *  buffer 
) [inline, private]

Definition at line 183 of file packet-metadata.cc.

Referenced by AddBig(), ReplaceTail(), ReserveCopy(), UpdateHead(), and UpdateTail().

void ns3::PacketMetadata::Append32 ( uint32_t  value,
uint8_t *  buffer 
) [inline, private]

Definition at line 190 of file packet-metadata.cc.

Referenced by AddBig(), and ReplaceTail().

void ns3::PacketMetadata::AppendValue ( uint32_t  value,
uint8_t *  buffer 
) [inline, private]

Definition at line 245 of file packet-metadata.cc.

References AppendValueExtra().

Referenced by AddBig(), and ReplaceTail().

void ns3::PacketMetadata::AppendValueExtra ( uint32_t  value,
uint8_t *  buffer 
) [private]

Definition at line 199 of file packet-metadata.cc.

Referenced by AppendValue().

PacketMetadata::ItemIterator ns3::PacketMetadata::BeginItem ( Buffer  buffer  )  const

Definition at line 968 of file packet-metadata.cc.

References ItemIterator.

Referenced by ns3::Packet::BeginItem(), and ns3::Packet::Print().

struct PacketMetadata::Data * ns3::PacketMetadata::Create ( uint32_t  size  )  [static, read, private]
PacketMetadata ns3::PacketMetadata::CreateFragment ( uint32_t  start,
uint32_t  end 
) const
Parameters:
start the amount of stuff to remove from the start
end the amount of stuff to remove from the end

Calling this method is equivalent to calling RemoveAtStart (start) and then, RemoveAtEnd (end).

Definition at line 591 of file packet-metadata.cc.

References RemoveAtEnd(), and RemoveAtStart().

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

void ns3::PacketMetadata::Deallocate ( struct PacketMetadata::Data data  )  [static, private]
uint32_t ns3::PacketMetadata::Deserialize ( Buffer::Iterator  i  ) 
void ns3::PacketMetadata::DoAddHeader ( uint32_t  uid,
uint32_t  size 
) [private]
void ns3::PacketMetadata::Enable ( void   )  [static]
void ns3::PacketMetadata::EnableChecking ( void   )  [static]

Definition at line 64 of file packet-metadata.cc.

References Enable(), and m_enableChecking.

uint32_t ns3::PacketMetadata::GetSerializedSize ( void   )  const
uint32_t ns3::PacketMetadata::GetTotalSize ( void   )  const [private]
uint32_t ns3::PacketMetadata::GetUid ( void   )  const

Definition at line 963 of file packet-metadata.cc.

References m_packetUid.

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

uint32_t ns3::PacketMetadata::GetUleb128Size ( uint32_t  value  )  const [inline, private]

Definition at line 113 of file packet-metadata.cc.

Referenced by AddBig(), and ReplaceTail().

PacketMetadata & ns3::PacketMetadata::operator= ( PacketMetadata const &  o  )  [inline]
uint32_t ns3::PacketMetadata::ReadItems ( uint16_t  current,
struct PacketMetadata::SmallItem item,
struct PacketMetadata::ExtraItem extraItem 
) const [private]
uint32_t ns3::PacketMetadata::ReadUleb128 ( const uint8_t **  pBuffer  )  const [private]

Definition at line 134 of file packet-metadata.cc.

References NS_ASSERT.

Referenced by ReadItems().

void ns3::PacketMetadata::Recycle ( struct PacketMetadata::Data data  )  [static, private]
void ns3::PacketMetadata::RemoveAtEnd ( uint32_t  end  ) 
void ns3::PacketMetadata::RemoveAtStart ( uint32_t  start  ) 
void ns3::PacketMetadata::RemoveHeader ( Header const &  header,
uint32_t  size 
)
void ns3::PacketMetadata::RemoveTrailer ( Trailer const &  trailer,
uint32_t  size 
)
void ns3::PacketMetadata::ReplaceTail ( PacketMetadata::SmallItem item,
PacketMetadata::ExtraItem extraItem,
uint32_t  available 
) [private]
void ns3::PacketMetadata::Reserve ( uint32_t  n  )  [inline, private]
void ns3::PacketMetadata::ReserveCopy ( uint32_t  n  )  [private]
void ns3::PacketMetadata::Serialize ( Buffer::Iterator  i,
uint32_t  size 
) const
void ns3::PacketMetadata::UpdateHead ( uint16_t  written  )  [inline, private]
void ns3::PacketMetadata::UpdateTail ( uint16_t  written  )  [inline, private]

Friends And Related Function Documentation

friend class ItemIterator [friend]

Definition at line 246 of file packet-metadata.h.

Referenced by BeginItem().


Member Data Documentation

uint16_t ns3::PacketMetadata::m_chunkUid = 0 [static, private]

Definition at line 289 of file packet-metadata.h.

Referenced by AddTrailer(), and DoAddHeader().

struct Data* ns3::PacketMetadata::m_data [private]
bool ns3::PacketMetadata::m_enable = false [static, private]
bool ns3::PacketMetadata::m_enableChecking = false [static, private]

Definition at line 281 of file packet-metadata.h.

Referenced by EnableChecking(), RemoveHeader(), and RemoveTrailer().

Definition at line 279 of file packet-metadata.h.

Referenced by Create(), and Recycle().

uint16_t ns3::PacketMetadata::m_head [private]
uint32_t ns3::PacketMetadata::m_maxSize = 0 [static, private]

Definition at line 288 of file packet-metadata.h.

Referenced by Create(), and Recycle().

bool ns3::PacketMetadata::m_metadataSkipped = false [static, private]

Definition at line 300 of file packet-metadata.h.

Referenced by GetUid(), operator=(), ReadItems(), RemoveAtEnd(), RemoveAtStart(), and ReplaceTail().

uint16_t ns3::PacketMetadata::m_tail [private]
uint16_t ns3::PacketMetadata::m_used [private]

The documentation for this class was generated from the following files:
Generated on Thu Dec 3 14:09:58 2009 for NS-3 by  doxygen 1.6.3