ns3::Queue Class Reference
[Queue]

Abstract base class for packet Queues. More...

#include <queue.h>

Inheritance diagram for ns3::Queue:
Inheritance graph
[legend]
Collaboration diagram for ns3::Queue:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Queue ()
virtual ~Queue ()
bool IsEmpty (void) const
bool Enqueue (Ptr< Packet > p)
Ptr< PacketDequeue (void)
Ptr< const PacketPeek (void) const
void DequeueAll (void)
uint32_t GetNPackets (void) const
uint32_t GetNBytes (void) const
uint32_t GetTotalReceivedBytes (void) const
uint32_t GetTotalReceivedPackets (void) const
uint32_t GetTotalDroppedBytes (void) const
uint32_t GetTotalDroppedPackets (void) const
void ResetStatistics (void)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::Queue.

Protected Member Functions

void Drop (Ptr< Packet > packet)

Private Member Functions

virtual bool DoEnqueue (Ptr< Packet > p)=0
virtual Ptr< PacketDoDequeue (void)=0
virtual Ptr< const PacketDoPeek (void) const =0

Private Attributes

TracedCallback< Ptr< const
Packet > > 
m_traceEnqueue
TracedCallback< Ptr< const
Packet > > 
m_traceDequeue
TracedCallback< Ptr< const
Packet > > 
m_traceDrop
uint32_t m_nBytes
uint32_t m_nTotalReceivedBytes
uint32_t m_nPackets
uint32_t m_nTotalReceivedPackets
uint32_t m_nTotalDroppedBytes
uint32_t m_nTotalDroppedPackets

Detailed Description

Abstract base class for packet Queues.

This class defines the base APIs for packet queues in the ns-3 system

Definition at line 45 of file queue.h.


Constructor & Destructor Documentation

ns3::Queue::Queue (  ) 

Definition at line 44 of file queue.cc.

References NS_LOG_FUNCTION_NOARGS.

ns3::Queue::~Queue (  )  [virtual]

Definition at line 55 of file queue.cc.

References NS_LOG_FUNCTION_NOARGS.


Member Function Documentation

Ptr< Packet > ns3::Queue::Dequeue ( void   ) 

Remove a packet from the front of the Queue

Returns:
0 if the operation was not successful; the packet otherwise.

Definition at line 79 of file queue.cc.

References DoDequeue(), m_nBytes, m_nPackets, m_traceDequeue, NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by DequeueAll().

void ns3::Queue::DequeueAll ( void   ) 

Flush the queue.

Definition at line 101 of file queue.cc.

References Dequeue(), IsEmpty(), and NS_LOG_FUNCTION.

virtual Ptr<Packet> ns3::Queue::DoDequeue ( void   )  [private, pure virtual]

Implemented in ns3::DropTailQueue.

Referenced by Dequeue().

virtual bool ns3::Queue::DoEnqueue ( Ptr< Packet p  )  [private, pure virtual]

Implemented in ns3::DropTailQueue.

Referenced by Enqueue().

virtual Ptr<const Packet> ns3::Queue::DoPeek ( void   )  const [private, pure virtual]

Implemented in ns3::DropTailQueue.

Referenced by Peek().

void ns3::Queue::Drop ( Ptr< Packet packet  )  [protected]
bool ns3::Queue::Enqueue ( Ptr< Packet p  ) 

Place a packet into the rear of the Queue

Returns:
True if the operation was successful; false otherwise

Definition at line 62 of file queue.cc.

References DoEnqueue(), m_nBytes, m_nPackets, m_traceEnqueue, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetNBytes ( void   )  const
Returns:
The number of bytes currently occupied by the packets in the Queue

Definition at line 127 of file queue.cc.

References m_nBytes, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetNPackets ( void   )  const
Returns:
The number of packets currently stored in the Queue

Definition at line 119 of file queue.cc.

References m_nPackets, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetTotalDroppedBytes ( void   )  const
Returns:
The total number of bytes dropped by this Queue since the simulation began, or since ResetStatistics was called, according to whichever happened more recently

Definition at line 159 of file queue.cc.

References m_nTotalDroppedBytes, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetTotalDroppedPackets ( void   )  const
Returns:
The total number of bytes dropped by this Queue since the simulation began, or since ResetStatistics was called, according to whichever happened more recently

Definition at line 167 of file queue.cc.

References m_nTotalDroppedPackets, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetTotalReceivedBytes ( void   )  const
Returns:
The total number of bytes recieved by this Queue since the simulation began, or since ResetStatistics was called, according to whichever happened more recently

Definition at line 143 of file queue.cc.

References m_nTotalReceivedBytes, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

uint32_t ns3::Queue::GetTotalReceivedPackets ( void   )  const
Returns:
The total number of packets recieved by this Queue since the simulation began, or since ResetStatistics was called, according to whichever happened more recently

Definition at line 151 of file queue.cc.

References m_nTotalReceivedPackets, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

TypeId ns3::Queue::GetTypeId ( void   )  [static]

This method returns the TypeId associated to ns3::Queue.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3CsmaNetDevice/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3EmuNetDevice/TxQueue
  • /NodeList/[i]/DeviceList/[i]/$ns3PointToPointNetDevice/TxQueue

No Attributes defined for this type.
TraceSources defined for this type:

  • Enqueue: Enqueue a packet in the queue.
  • Dequeue: Dequeue a packet from the queue.
  • Drop: Drop a packet stored in the queue.

Reimplemented from ns3::Object.

Reimplemented in ns3::DropTailQueue.

Definition at line 30 of file queue.cc.

References m_traceDequeue, m_traceDrop, m_traceEnqueue, ns3::MakeTraceSourceAccessor(), and ns3::TypeId::SetParent().

bool ns3::Queue::IsEmpty ( void   )  const
Returns:
true if the queue is empty; false otherwise

Definition at line 135 of file queue.cc.

References m_nPackets, NS_LOG_FUNCTION_NOARGS, and NS_LOG_LOGIC.

Referenced by DequeueAll().

Ptr< const Packet > ns3::Queue::Peek ( void   )  const

Get a copy of the item at the front of the queue without removing it

Returns:
0 if the operation was not successful; the packet otherwise.

Definition at line 111 of file queue.cc.

References DoPeek(), and NS_LOG_FUNCTION.

void ns3::Queue::ResetStatistics ( void   ) 

Resets the counts for dropped packets, dropped bytes, recieved packets, and recieved bytes.

Definition at line 175 of file queue.cc.

References m_nTotalDroppedBytes, m_nTotalDroppedPackets, m_nTotalReceivedBytes, m_nTotalReceivedPackets, and NS_LOG_FUNCTION_NOARGS.


Member Data Documentation

uint32_t ns3::Queue::m_nBytes [private]

Definition at line 156 of file queue.h.

Referenced by Dequeue(), Enqueue(), and GetNBytes().

uint32_t ns3::Queue::m_nPackets [private]

Definition at line 158 of file queue.h.

Referenced by Dequeue(), Enqueue(), GetNPackets(), and IsEmpty().

Definition at line 160 of file queue.h.

Referenced by Drop(), GetTotalDroppedBytes(), and ResetStatistics().

Definition at line 161 of file queue.h.

Referenced by Drop(), GetTotalDroppedPackets(), and ResetStatistics().

Definition at line 157 of file queue.h.

Referenced by GetTotalReceivedBytes(), and ResetStatistics().

Definition at line 159 of file queue.h.

Referenced by GetTotalReceivedPackets(), and ResetStatistics().

Definition at line 153 of file queue.h.

Referenced by Dequeue(), and GetTypeId().

Definition at line 154 of file queue.h.

Referenced by Drop(), and GetTypeId().

Definition at line 152 of file queue.h.

Referenced by Enqueue(), and GetTypeId().


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