a binary heap event scheduler
More...
#include <heap-scheduler.h>
List of all members.
Detailed Description
a binary heap event scheduler
This code started as a c++ translation of a java-based code written in 2005 to implement a heap sort. So, this binary heap is really a pretty straightforward implementation of the classic data structure. Not much to say about it.
What is smart about this code ?
- it does not use the index 0 in the array to avoid having to convert C-style array indexes (which start at zero) and heap-style indexes (which start at 1). This is why _all_ indexes start at 1, and that the index of the root is 1.
- It uses a slightly non-standard while loop for top-down heapify to move one if statement out of the loop.
Member Function Documentation
static TypeId ns3::HeapScheduler::GetTypeId |
( |
void |
|
) |
[static] |
This method returns the TypeId associated to ns3::HeapScheduler.
This object is accessible through the following paths with Config::Set and Config::Connect:
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/LinkManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/SSManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/BsIpcsPacketClassifier/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/LinkManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/SSManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice/ServiceFlowManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/Classifier/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/SSScheduler/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BandwidthManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/BurstProfileManager/$ns3::Scheduler/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::HeapScheduler
-
/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/ConnectionManager/$ns3::Scheduler/$ns3::HeapScheduler
No Attributes defined for this type.
No TraceSources defined for this type.
Reimplemented from ns3::Scheduler.
virtual void ns3::HeapScheduler::Insert |
( |
const Event & |
ev |
) |
[virtual] |
- Parameters:
-
| ev | event to store in the event list |
Implements ns3::Scheduler.
virtual bool ns3::HeapScheduler::IsEmpty |
( |
void |
|
) |
const [virtual] |
- Returns:
- true if the event list is empty and false otherwise.
Implements ns3::Scheduler.
virtual Event ns3::HeapScheduler::PeekNext |
( |
void |
|
) |
const [virtual] |
- Returns:
- a pointer to the next earliest event. The caller takes ownership of the returned pointer.
This method cannot be invoked if the list is empty.
Implements ns3::Scheduler.
virtual void ns3::HeapScheduler::Remove |
( |
const Event & |
ev |
) |
[virtual] |
- Parameters:
-
This methods cannot be invoked if the list is empty.
Implements ns3::Scheduler.
virtual Event ns3::HeapScheduler::RemoveNext |
( |
void |
|
) |
[virtual] |
This method cannot be invoked if the list is empty. Remove the next earliest event from the event list.
Implements ns3::Scheduler.
The documentation for this class was generated from the following files:
- src/simulator/heap-scheduler.h
- doc/introspected-doxygen.h