INET Framework for OMNeT++/OMNEST
inet::IPv6NeighbourCache::DefaultRouterList Class Reference

#include <IPv6NeighbourCache.h>

Classes

class  iterator
 

Public Member Functions

 DefaultRouterList ()
 
void clear ()
 
NeighbourgetHead () const
 
void setHead (Neighbour &router)
 
void add (Neighbour &router)
 
void remove (Neighbour &router)
 
iterator begin ()
 
iterator end ()
 

Private Attributes

Neighbourhead
 

Constructor & Destructor Documentation

inet::IPv6NeighbourCache::DefaultRouterList::DefaultRouterList ( )
inline
150 : head(nullptr) {}
Neighbour * head
Definition: IPv6NeighbourCache.h:147

Member Function Documentation

void inet::IPv6NeighbourCache::DefaultRouterList::add ( Neighbour router)

Referenced by inet::IPv6NeighbourCache::addRouter().

24 {
25  ASSERT(router.isRouter);
26  ASSERT(!router.nextDefaultRouter);
27  ASSERT(!router.prevDefaultRouter);
28 
29  if (head) {
30  // insert before head
32  router.prevDefaultRouter = head;
33  head->prevDefaultRouter = &router;
34  router.nextDefaultRouter = head;
35  }
36  else {
37  head = router.nextDefaultRouter = router.prevDefaultRouter = &router;
38  }
39 }
Neighbour * prevDefaultRouter
Definition: IPv6NeighbourCache.h:105
Neighbour * nextDefaultRouter
Definition: IPv6NeighbourCache.h:106
Neighbour * head
Definition: IPv6NeighbourCache.h:147
iterator inet::IPv6NeighbourCache::DefaultRouterList::begin ( )
inline

Referenced by inet::IPv6NeighbourDiscovery::selectDefaultRouter().

156 { return iterator(head); }
Neighbour * head
Definition: IPv6NeighbourCache.h:147
void inet::IPv6NeighbourCache::DefaultRouterList::clear ( )
inline

Referenced by inet::IPv6NeighbourCache::invalidateAllEntries().

151 { head = nullptr; }
Neighbour * head
Definition: IPv6NeighbourCache.h:147
iterator inet::IPv6NeighbourCache::DefaultRouterList::end ( )
inline

Referenced by inet::IPv6NeighbourDiscovery::selectDefaultRouter().

157 { return iterator(nullptr); }
Neighbour* inet::IPv6NeighbourCache::DefaultRouterList::getHead ( ) const
inline

Referenced by inet::IPv6NeighbourDiscovery::selectDefaultRouter().

152 { return head; }
Neighbour * head
Definition: IPv6NeighbourCache.h:147
void inet::IPv6NeighbourCache::DefaultRouterList::remove ( Neighbour router)

Referenced by inet::IPv6NeighbourDiscovery::processNAForIncompleteNCEState(), inet::IPv6NeighbourDiscovery::processNAForOtherNCEStates(), and inet::IPv6NeighbourCache::remove().

42 {
43  ASSERT(router.isDefaultRouter());
44  if (router.nextDefaultRouter == &router) {
45  head = nullptr;
46  }
47  else {
48  if (head == &router)
49  head = router.nextDefaultRouter;
52  }
53  router.nextDefaultRouter = router.prevDefaultRouter = nullptr;
54 }
Neighbour * prevDefaultRouter
Definition: IPv6NeighbourCache.h:105
Neighbour * nextDefaultRouter
Definition: IPv6NeighbourCache.h:106
Neighbour * head
Definition: IPv6NeighbourCache.h:147
void inet::IPv6NeighbourCache::DefaultRouterList::setHead ( Neighbour router)
inline

Referenced by inet::IPv6NeighbourDiscovery::selectDefaultRouter().

153 { ASSERT(router.isDefaultRouter()); head = &router; }
Neighbour * head
Definition: IPv6NeighbourCache.h:147

Member Data Documentation

Neighbour* inet::IPv6NeighbourCache::DefaultRouterList::head
private

Referenced by add(), and remove().


The documentation for this class was generated from the following files: