doxygen update (@internal)

This commit is contained in:
Craig Dowell
2007-07-27 20:48:21 -07:00
parent 510083f0ea
commit b4698b7cca
3 changed files with 147 additions and 90 deletions

View File

@@ -43,94 +43,117 @@ namespace ns3 {
class CandidateQueue
{
public:
/**
* Create an empty SPF Candidate Queue.
*
* @see SPFVertex
*/
/**
* @brief Create an empty SPF Candidate Queue.
* @internal
*
* @see SPFVertex
*/
CandidateQueue ();
/**
* Destroy an SPF Candidate Queue and release any resources held by the
* contents.
*
* @see SPFVertex
*/
/**
* @internal Destroy an SPF Candidate Queue and release any resources held
* by the contents.
* @internal
*
* @see SPFVertex
*/
virtual ~CandidateQueue ();
/**
* Empty the Candidate Queue and release all of the resources associated
* with the Shortest Path First Vertex pointers in the queue.
*
* @see SPFVertex
*/
/**
* @brief Empty the Candidate Queue and release all of the resources
* associated with the Shortest Path First Vertex pointers in the queue.
* @internal
*
* @see SPFVertex
*/
void Clear (void);
/**
* Push a Shortest Path First Vertex pointer onto the queue according to the
* priority scheme.
*
* On completion, the top of the queue will hold the Shortest Path First
* Vertex pointer that points to a vertex having lowest value of the field
* m_distanceFromRoot. Remaining vertices are ordered according to
* increasing distance.
*
* @see SPFVertex
* @param vNew The Shortest Path First Vertex to add to the queue.
*/
/**
* @brief Push a Shortest Path First Vertex pointer onto the queue according
* to the priority scheme.
* @internal
*
* On completion, the top of the queue will hold the Shortest Path First
* Vertex pointer that points to a vertex having lowest value of the field
* m_distanceFromRoot. Remaining vertices are ordered according to
* increasing distance.
*
* @see SPFVertex
* @param vNew The Shortest Path First Vertex to add to the queue.
*/
void Push (SPFVertex *vNew);
/**
* Pop the Shortest Path First Vertex pointer at the top of the queue.
* The caller is given the responsiblity for releasing the resources
* associated with the vertex.
*
* @see SPFVertex
* @see Top ()
* @returns The Shortest Path First Vertex pointer at the top of the queue.
*/
/**
* @brief Pop the Shortest Path First Vertex pointer at the top of the queue.
* @internal
*
* The caller is given the responsiblity for releasing the resources
* associated with the vertex.
*
* @see SPFVertex
* @see Top ()
* @returns The Shortest Path First Vertex pointer at the top of the queue.
*/
SPFVertex* Pop (void);
/**
* Return the Shortest Path First Vertex pointer at the top of the queue.
* This method does not pop the SPFVertex* off of the queue, it simply
* returns the pointer.
*
* @see SPFVertex
* @see Pop ()
* @returns The Shortest Path First Vertex pointer at the top of the queue.
*/
/**
* @brief Return the Shortest Path First Vertex pointer at the top of the
* queue.
* @internal
*
* This method does not pop the SPFVertex* off of the queue, it simply
* returns the pointer.
*
* @see SPFVertex
* @see Pop ()
* @returns The Shortest Path First Vertex pointer at the top of the queue.
*/
SPFVertex* Top (void) const;
/**
* Test the Candidate Queue to determine if it is empty.
*
* @returns True if the queue is empty, false otherwise.
*/
/**
* @brief Test the Candidate Queue to determine if it is empty.
* @internal
*
* @returns True if the queue is empty, false otherwise.
*/
bool Empty (void) const;
/**
* Return the number of Shortest Path First Vertex pointers presently
* stored in the Candidate Queue.
*
* @see SPFVertex
* @returns The number of SPFVertex* pointers in the Candidate Queue.
*/
/**
* @brief Return the number of Shortest Path First Vertex pointers presently
* stored in the Candidate Queue.
* @internal
*
* @see SPFVertex
* @returns The number of SPFVertex* pointers in the Candidate Queue.
*/
uint32_t Size (void) const;
/**
* Searches the Candidate Queue for a Shortest Path First Vertex pointer
* that points to a vertex having the given IP address.
*
* @see SPFVertex
* @param addr The IP address to search for.
* @returns The SPFVertex* pointer corresponding to the given IP address.
*/
/**
* @brief Searches the Candidate Queue for a Shortest Path First Vertex
* pointer that points to a vertex having the given IP address.
* @internal
*
* @see SPFVertex
* @param addr The IP address to search for.
* @returns The SPFVertex* pointer corresponding to the given IP address.
*/
SPFVertex* Find (const Ipv4Address addr) const;
/**
* Reorders the Candidate Queue according to the priority scheme. On
* completion, the top of the queue will hold the Shortest Path First
* Vertex pointer that points to a vertex having lowest value of the field
* m_distanceFromRoot. Remaining vertices are ordered according to
* increasing distance.
*
* This method is provided in case the values of m_distanceFromRoot change
* during the routing calculations.
*
* @see SPFVertex
*/
/**
* @brief Reorders the Candidate Queue according to the priority scheme.
* @internal
*
* On completion, the top of the queue will hold the Shortest Path First
* Vertex pointer that points to a vertex having lowest value of the field
* m_distanceFromRoot. Remaining vertices are ordered according to
* increasing distance.
*
* This method is provided in case the values of m_distanceFromRoot change
* during the routing calculations.
*
* @see SPFVertex
*/
void Reorder (void);
protected:
@@ -138,17 +161,18 @@ protected:
CandidateList_t m_candidates;
private:
/**
* Candidate Queue copy construction is disallowed (not implemented) to
* prevent the compiler from slipping in incorrect versions that don't
* properly deal with deep copies.
*/
/**
* Candidate Queue copy construction is disallowed (not implemented) to
* prevent the compiler from slipping in incorrect versions that don't
* properly deal with deep copies.
*/
CandidateQueue (CandidateQueue& sr);
/**
* Candidate Queue assignment operator is disallowed (not implemented) to
* prevent the compiler from slipping in incorrect versions that don't
* properly deal with deep copies.
*/
/**
* Candidate Queue assignment operator is disallowed (not implemented) to
* prevent the compiler from slipping in incorrect versions that don't
* properly deal with deep copies.
*/
CandidateQueue& operator= (CandidateQueue& sr);
};

View File

@@ -61,6 +61,7 @@ class SPFVertex
public:
/**
* @brief Enumeration of the possible types of SPFVertex objects.
* @internal
*
* Currently we use VertexRouter to identify objects that represent a router
* in the simulation topology, and VertexNetwork to identify objects that
@@ -75,6 +76,7 @@ public:
/**
* @brief Construct an empty ("uninitialized") SPFVertex (Shortest Path First
* Vertex).
* @internal
*
* The Vertex Type is set to VertexUnknown, the Vertex ID is set to
* 255.255.255.255, and the distance from root is set to infinity
@@ -89,6 +91,7 @@ public:
/**
* @brief Construct an initialized SPFVertex (Shortest Path First Vertex).
* @internal
*
* The Vertex Type is initialized to VertexRouter and the Vertex ID is found
* from the Link State ID of the Link State Advertisement (LSA) passed as a
@@ -106,6 +109,7 @@ public:
/**
* @brief Destroy an SPFVertex (Shortest Path First Vertex).
* @internal
*
* The children vertices of the SPFVertex are recursively deleted.
*
@@ -115,6 +119,7 @@ public:
/**
* @brief Get the Vertex Type field of a SPFVertex object.
* @internal
*
* The Vertex Type describes the kind of simulation object a given SPFVertex
* represents.
@@ -126,6 +131,7 @@ public:
/**
* @brief Set the Vertex Type field of a SPFVertex object.
* @internal
*
* The Vertex Type describes the kind of simulation object a given SPFVertex
* represents.
@@ -137,6 +143,7 @@ public:
/**
* @brief Get the Vertex ID field of a SPFVertex object.
* @internal
*
* The Vertex ID uniquely identifies the simulation object a given SPFVertex
* represents. Typically, this is the Router ID for SPFVertex objects
@@ -152,6 +159,7 @@ public:
/**
* @brief Set the Vertex ID field of a SPFVertex object.
* @internal
*
* The Vertex ID uniquely identifies the simulation object a given SPFVertex
* represents. Typically, this is the Router ID for SPFVertex objects
@@ -170,6 +178,7 @@ public:
* @brief Get the Global Router Link State Advertisement returned by the
* Global Router represented by this SPFVertex during the route discovery
* process.
* @internal
*
* @see GlobalRouter
* @see GlobalRouterLSA
@@ -183,6 +192,7 @@ public:
* @brief Set the Global Router Link State Advertisement returned by the
* Global Router represented by this SPFVertex during the route discovery
* process.
* @internal
*
* @see SPFVertex::GetLSA ()
* @see GlobalRouter
@@ -196,6 +206,7 @@ public:
/**
* @brief Get the distance from the root vertex to "this" SPFVertex object.
* @internal
*
* Each router in the simulation is associated with an SPFVertex object. When
* calculating routes, each of these routers is, in turn, chosen as the "root"
@@ -218,6 +229,7 @@ public:
/**
* @brief Set the distance from the root vertex to "this" SPFVertex object.
* @internal
*
* Each router in the simulation is associated with an SPFVertex object. When
* calculating routes, each of these routers is, in turn, chosen as the "root"
@@ -239,6 +251,7 @@ public:
/**
* @brief Get the interface ID that should be used to begin forwarding packets
* from the root SPFVertex to "this" SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -280,6 +293,7 @@ public:
/**
* @brief Set the interface ID that should be used to begin forwarding packets
* from the root SPFVertex to "this" SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -321,6 +335,7 @@ public:
/**
* @brief Get the IP address that should be used to begin forwarding packets
* from the root SPFVertex to "this" SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -363,6 +378,7 @@ public:
/**
* @brief Set the IP address that should be used to begin forwarding packets
* from the root SPFVertex to "this" SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -405,6 +421,7 @@ public:
/**
* @brief Get a pointer to the SPFVector that is the parent of "this"
* SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -425,6 +442,7 @@ public:
/**
* @brief Set the pointer to the SPFVector that is the parent of "this"
* SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -444,6 +462,7 @@ public:
/**
* @brief Get the number of children of "this" SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -466,6 +485,7 @@ public:
/**
* @brief Get a borrowed SPFVertex pointer to the specified child of "this"
* SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -494,6 +514,7 @@ public:
/**
* @brief Get a borrowed SPFVertex pointer to the specified child of "this"
* SPFVertex.
* @internal
*
* Each router node in the simulation is associated with an SPFVertex object.
* When calculating routes, each of these routers is, in turn, chosen as the
@@ -561,6 +582,7 @@ class GlobalRouteManagerLSDB
public:
/**
* @brief Construct an empty Global Router Manager Link State Database.
* @internal
*
* The database map composing the Link State Database is initialized in
* this constructor.
@@ -569,6 +591,7 @@ public:
/**
* @brief Destroy an empty Global Router Manager Link State Database.
* @internal
*
* The database map is walked and all of the Link State Advertisements stored
* in the database are freed; then the database map itself is clear ()ed to
@@ -579,6 +602,7 @@ public:
/**
* @brief Insert an IP address / Link State Advertisement pair into the Link
* State Database.
* @internal
*
* The IPV4 address and the GlobalRouterLSA given as parameters are converted
* to an STL pair and are inserted into the database map.
@@ -594,6 +618,7 @@ public:
/**
* @brief Look up the Link State Advertisement associated with the given
* IP Address.
* @internal
*
* The database map is searched for the given IPV4 address and corresponding
* GlobalRouterLSA is returned.
@@ -609,6 +634,7 @@ public:
/**
* @brief Set all LSA flags to an initialized state, for SPF computation
* @internal
*
* This function walks the database and resets the status flags of all of the
* contained Link State Advertisements to LSA_SPF_NOT_EXPLORED. This is done
@@ -657,6 +683,7 @@ public:
/**
* @brief Select which nodes in the system are to be router nodes and
* aggregate the appropriate interfaces onto those nodes.
* @internal
*
*/
virtual void SelectRouterNodes ();
@@ -664,23 +691,26 @@ public:
/**
* @brief Build the routing database by gathering Link State Advertisements
* from each node exporting a GlobalRouter interface.
*
* @internal
*/
virtual void BuildGlobalRoutingDatabase ();
/**
* @brief Compute routes using a Dijkstra SPF computation and populate
* per-node forwarding tables
* @internal
*/
virtual void InitializeRoutes ();
/**
* @brief Debugging routine; allow client code to supply a pre-built LSDB
* @internal
*/
void DebugUseLsdb (GlobalRouteManagerLSDB*);
/**
* @brief Debugging routine; call the core SPF from the unit tests
* @internal
*/
void DebugSPFCalculate (Ipv4Address root);

View File

@@ -54,6 +54,7 @@ private:
/**
* @brief Select which nodes in the system are to be router nodes and
* aggregate the appropriate interfaces onto those nodes.
* @internal
*
*/
static void SelectRouterNodes ();
@@ -61,6 +62,7 @@ private:
/**
* @brief Build the routing database by gathering Link State Advertisements
* from each node exporting a GlobalRouter interface.
* @internal
*
*/
static void BuildGlobalRoutingDatabase ();
@@ -68,6 +70,7 @@ private:
/**
* @brief Compute routes using a Dijkstra SPF computation and populate
* per-node forwarding tables
* @internal
*/
static void InitializeRoutes ();