GiaNeighborCandidateList Class Reference

#include <GiaNeighborCandidateList.h>

List of all members.


Detailed Description

This class is for managing of possible neighbor nodes Used for JOIN-Protocol.


Public Member Functions

uint getSize ()
 Get size of candidate list.
void add (const NodeHandle &node)
 Add an node to candidate list.
void remove (uint position)
 Removes node from position.
void remove (const NodeHandle &node)
 Removes node.
bool contains (const NodeHandle &node)
 Check if candidate list contains node.
const NodeHandlegetRandomCandidate ()
const NodeHandleget (uint position)
 Get node from position.
void clear ()
 Get position of node.

Protected Attributes

std::set< NodeHandlecandidates
 contains all neighbor candidates


Member Function Documentation

uint GiaNeighborCandidateList::getSize (  ) 

Get size of candidate list.

Returns:
Size of candidate list

Referenced by getRandomCandidate(), and Gia::handleTimerEvent().

00033 {
00034     return candidates.size();
00035 }

void GiaNeighborCandidateList::add ( const NodeHandle node  ) 

Add an node to candidate list.

Parameters:
node Node to add to candidate list

Referenced by Gia::changeState(), Gia::handleTimerEvent(), and Gia::handleUDPMessage().

00038 {
00039     assert(!(node.isUnspecified()));
00040     candidates.insert( node );
00041 }

void GiaNeighborCandidateList::remove ( uint  position  ) 

Removes node from position.

Parameters:
position 

Referenced by Gia::handleUDPMessage().

00044 {
00045     std::set<NodeHandle>::iterator it = candidates.begin();
00046     for (uint i=0; i<position; i++) {
00047         it++;
00048     }
00049     candidates.erase( it );
00050 }

void GiaNeighborCandidateList::remove ( const NodeHandle node  ) 

Removes node.

Parameters:
node Node to remove from candidate list
00053 {
00054     candidates.erase(node);
00055 }

bool GiaNeighborCandidateList::contains ( const NodeHandle node  ) 

Check if candidate list contains node.

Parameters:
node 
Returns:
true if list contains node

Referenced by Gia::handleTimerEvent(), and Gia::handleUDPMessage().

00058 {
00059     if(node.key.isUnspecified())
00060         return false;
00061 
00062     std::set<NodeHandle>::iterator it = candidates.find(node);
00063 
00064     if(it != candidates.end() && it->key == node.key)
00065         return true;
00066     else
00067         return false;
00068 }

const NodeHandle & GiaNeighborCandidateList::getRandomCandidate (  ) 

Referenced by Gia::handleTimerEvent().

00085 {
00086     return get(intuniform(0, getSize()));
00087 }

const NodeHandle & GiaNeighborCandidateList::get ( uint  position  ) 

Get node from position.

Parameters:
position 
00072 {
00073     if ( position >= candidates.size() )
00074         return NodeHandle::UNSPECIFIED_NODE;
00075     else {
00076         std::set<NodeHandle>::iterator it = candidates.begin();
00077         for (uint i=0; i<position; i++) {
00078             it++;
00079         }
00080         return *it;
00081     }
00082 }

void GiaNeighborCandidateList::clear (  ) 

Get position of node.

Returns:
position of node Clear candidate list

Referenced by Gia::initializeOverlay().

00107 {
00108     candidates.clear();
00109 }


Member Data Documentation

contains all neighbor candidates

Referenced by add(), clear(), contains(), get(), getSize(), and remove().


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

Generated on Fri Sep 19 13:05:06 2008 for ITM OverSim by  doxygen 1.5.5