network: Add a Remove method to the Queue base class
This commit is contained in:
@@ -158,6 +158,32 @@ Queue::Dequeue (void)
|
||||
return item;
|
||||
}
|
||||
|
||||
Ptr<QueueItem>
|
||||
Queue::Remove (void)
|
||||
{
|
||||
NS_LOG_FUNCTION (this);
|
||||
|
||||
if (m_nPackets.Get () == 0)
|
||||
{
|
||||
NS_LOG_LOGIC ("Queue empty");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Ptr<QueueItem> item = DoRemove ();
|
||||
|
||||
if (item != 0)
|
||||
{
|
||||
NS_ASSERT (m_nBytes.Get () >= item->GetPacketSize ());
|
||||
NS_ASSERT (m_nPackets.Get () > 0);
|
||||
|
||||
m_nBytes -= item->GetPacketSize ();
|
||||
m_nPackets--;
|
||||
|
||||
Drop (item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
|
||||
void
|
||||
Queue::DequeueAll (void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user