32 #include "dsr-network-queue.h"
38 #include "ns3/ipv4-route.h"
39 #include "ns3/socket.h"
46 NS_OBJECT_ENSURE_REGISTERED (DsrNetworkQueue);
49 DsrNetworkQueue::GetTypeID (
void)
51 static TypeId tid = TypeId (
"ns3::dsr::DsrNetworkQueue")
53 .AddConstructor<DsrNetworkQueue> ()
71 DsrNetworkQueue::~DsrNetworkQueue ()
78 DsrNetworkQueue::SetMaxNetworkSize (uint32_t maxSize)
84 DsrNetworkQueue::SetMaxNetworkDelay (Time delay)
90 DsrNetworkQueue::GetMaxNetworkSize (
void)
const
96 DsrNetworkQueue::GetMaxNetworkDelay (
void)
const
105 if (m_size >= m_maxSize)
110 entry.SetInsertedTimeStamp (now);
111 m_dsrNetworkQueue.push_back (entry);
122 std::vector<DsrNetworkQueueEntry>::iterator i = m_dsrNetworkQueue.begin ();
123 if (i == m_dsrNetworkQueue.end ())
130 m_dsrNetworkQueue.erase (i);
136 DsrNetworkQueue::Cleanup (
void)
139 if (m_dsrNetworkQueue.empty ())
146 for (std::vector<DsrNetworkQueueEntry>::iterator i = m_dsrNetworkQueue.begin (); i != m_dsrNetworkQueue.end (); )
148 if (i->GetInsertedTimeStamp () + m_maxDelay > now)
155 i = m_dsrNetworkQueue.erase (i);
170 DsrNetworkQueue::Flush (
void)
173 m_dsrNetworkQueue.erase (m_dsrNetworkQueue.begin (), m_dsrNetworkQueue.end ());
#define NS_LOG_FUNCTION(parameters)
uint32_t GetSize()
Number of entries.
#define NS_LOG_COMPONENT_DEFINE(name)
bool Enqueue(DsrNetworkQueueEntry &entry)
Push entry in queue, if there is no entry with the same packet and destination address in queue...
bool Dequeue(DsrNetworkQueueEntry &entry)
Return first found (the earliest) entry for given destination.
#define NS_LOG_LOGIC(msg)
DsrNetworkQueue()
Default c-tor.