A Discrete-Event Network Simulator
API
candidate-queue.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright 2007 University of Washington
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Craig Dowell (craigdo@ee.washington.edu)
19  */
20 
21 #ifndef CANDIDATE_QUEUE_H
22 #define CANDIDATE_QUEUE_H
23 
24 #include <stdint.h>
25 #include <list>
26 #include "ns3/ipv4-address.h"
27 
28 namespace ns3 {
29 
30 class SPFVertex;
31 
52 {
53 public:
59  CandidateQueue ();
60 
67  virtual ~CandidateQueue ();
68 
75  void Clear (void);
76 
89  void Push (SPFVertex *vNew);
90 
101  SPFVertex* Pop (void);
102 
114  SPFVertex* Top (void) const;
115 
121  bool Empty (void) const;
122 
130  uint32_t Size (void) const;
131 
140  SPFVertex* Find (const Ipv4Address addr) const;
141 
155  void Reorder (void);
156 
157 private:
165 
185  static bool CompareSPFVertex (const SPFVertex* v1, const SPFVertex* v2);
186 
187  typedef std::list<SPFVertex*> CandidateList_t;
189 
197  friend std::ostream& operator<< (std::ostream& os, const CandidateQueue& q);
198 };
199 
200 } // namespace ns3
201 
202 #endif /* CANDIDATE_QUEUE_H */
ns3::CandidateQueue::Push
void Push(SPFVertex *vNew)
Push a Shortest Path First Vertex pointer onto the queue according to the priority scheme.
Definition: candidate-queue.cc:93
ns3::CandidateQueue
A Candidate Queue used in routing calculations.
Definition: candidate-queue.h:52
ns3::CandidateQueue::m_candidates
CandidateList_t m_candidates
SPFVertex candidates.
Definition: candidate-queue.h:188
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::CandidateQueue::CandidateQueue
CandidateQueue(CandidateQueue &sr)
Candidate Queue copy construction is disallowed (not implemented) to prevent the compiler from slippi...
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:41
ns3::CandidateQueue::Empty
bool Empty(void) const
Test the Candidate Queue to determine if it is empty.
Definition: candidate-queue.cc:131
ns3::CandidateQueue::Size
uint32_t Size(void) const
Return the number of Shortest Path First Vertex pointers presently stored in the Candidate Queue.
Definition: candidate-queue.cc:138
ns3::CandidateQueue::Find
SPFVertex * Find(const Ipv4Address addr) const
Searches the Candidate Queue for a Shortest Path First Vertex pointer that points to a vertex having ...
Definition: candidate-queue.cc:145
ns3::CandidateQueue::CandidateList_t
std::list< SPFVertex * > CandidateList_t
container of SPFVertex pointers
Definition: candidate-queue.h:187
ns3::CandidateQueue::Clear
void Clear(void)
Empty the Candidate Queue and release all of the resources associated with the Shortest Path First Ve...
Definition: candidate-queue.cc:81
ns3::CandidateQueue::Pop
SPFVertex * Pop(void)
Pop the Shortest Path First Vertex pointer at the top of the queue.
Definition: candidate-queue.cc:105
ns3::CandidateQueue::Top
SPFVertex * Top(void) const
Return the Shortest Path First Vertex pointer at the top of the queue.
Definition: candidate-queue.cc:119
ns3::CandidateQueue::CandidateQueue
CandidateQueue()
Create an empty SPF Candidate Queue.
Definition: candidate-queue.cc:68
ns3::CandidateQueue::operator<<
friend std::ostream & operator<<(std::ostream &os, const CandidateQueue &q)
Stream insertion operator.
Definition: candidate-queue.cc:50
ns3::CandidateQueue::CompareSPFVertex
static bool CompareSPFVertex(const SPFVertex *v1, const SPFVertex *v2)
return true if v1 < v2
Definition: candidate-queue.cc:180
ns3::CandidateQueue::~CandidateQueue
virtual ~CandidateQueue()
Destroy an SPF Candidate Queue and release any resources held by the contents.
Definition: candidate-queue.cc:74
ns3::CandidateQueue::Reorder
void Reorder(void)
Reorders the Candidate Queue according to the priority scheme.
Definition: candidate-queue.cc:163
ns3::CandidateQueue::operator=
CandidateQueue & operator=(CandidateQueue &sr)
Candidate Queue assignment operator is disallowed (not implemented) to prevent the compiler from slip...
ns3::SPFVertex
Vertex used in shortest path first (SPF) computations.
Definition: global-route-manager-impl.h:69