| 
    OverSim
    
   | 
 
PastryNeighborhoodSet module. More...
#include <PastryNeighborhoodSet.h>
  
 Public Member Functions | |
| void | initializeSet (uint32_t numberOfNeighbors, uint32_t bitsPerDigit, const NodeHandle &owner) | 
| Initializes the neighborhood set.   | |
| virtual void | dumpToStateMessage (PastryStateMessage *msg) const | 
| dump content of the set to a PastryStateMessage   | |
| virtual const NodeHandle & | findCloserNode (const OverlayKey &destination, bool optimize=false) | 
| try to find a node numerically closer to a given key with the same shared prefix as the current node in the neighborhood set.   | |
| void | findCloserNodes (const OverlayKey &destination, NodeVector *nodes) | 
| virtual bool | mergeNode (const NodeHandle &node, simtime_t prox) | 
| merge a node into NeighborhoodSet   | |
| virtual void | dumpToVector (std::vector< TransportAddress > &affected) const | 
| appends all neighborhood set entries to a given vector of TransportAddresses, needed to find all Nodes to be notified after joining.   | |
| virtual const TransportAddress & | failedNode (const TransportAddress &failed) | 
| tell the neighborhood set about a failed node   | |
  Public Member Functions inherited from PastryStateObject | |
| void | handleMessage (cMessage *msg) | 
| int | numInitStages (void) const | 
| void | initialize (int stage) | 
| virtual const NodeHandle & | getDestinationNode (const OverlayKey &destination) | 
| gets the final node according to the Pastry routing scheme.   | |
| virtual const TransportAddress & | repair (const PastryStateMessage *msg, const PastryStateMsgProximity &prox) | 
| attempt to repair state using a received REPAIR message   | |
| virtual bool | mergeState (const PastryStateMessage *msg, const PastryStateMsgProximity *prox) | 
| update own state based on a received PastryStateMessage   | |
| bool | isCloser (const NodeHandle &test, const OverlayKey &destination, const NodeHandle &reference=NodeHandle::UNSPECIFIED_NODE) const | 
| test a given NodeHandle if it is closer to a given destination   | |
| bool | specialCloserCondition (const NodeHandle &test, const OverlayKey &destination, const NodeHandle &reference=NodeHandle::UNSPECIFIED_NODE) const | 
| test a given NodeHandle if it is closer to a given destination, but only if the shared prefix length with the destination is at least equal to the shared prefix length with our own node   | |
Private Member Functions | |
| virtual void | earlyInit (void) | 
Private Attributes | |
| uint32_t | numberOfNeighbors | 
| std::vector< PastryExtendedNode > | neighbors | 
Additional Inherited Members | |
  Static Protected Member Functions inherited from PastryStateObject | |
| static const PastryExtendedNode & | unspecNode () | 
  Protected Attributes inherited from PastryStateObject | |
| NodeHandle | owner | 
| stores the NodeHandle of the owner of this PastryStateObject.   | |
| uint32_t | bitsPerDigit | 
PastryNeighborhoodSet module.
This module contains the NeighborhoodSet of the Pastry implementation.
Definition at line 46 of file PastryNeighborhoodSet.h.
      
  | 
  virtual | 
dump content of the set to a PastryStateMessage
| msg | the PastryStateMessage to be filled with entries | 
Implements PastryStateObject.
Definition at line 52 of file PastryNeighborhoodSet.cc.
Referenced by BasePastry::createStateMessage().
      
  | 
  virtual | 
appends all neighborhood set entries to a given vector of TransportAddresses, needed to find all Nodes to be notified after joining.
| affected | the vector to fill with leaf set entries | 
Implements PastryStateObject.
Definition at line 136 of file PastryNeighborhoodSet.cc.
Referenced by Pastry::doSecondStage().
      
  | 
  privatevirtual | 
Definition at line 31 of file PastryNeighborhoodSet.cc.
      
  | 
  virtual | 
tell the neighborhood set about a failed node
| failed | the failed node | 
Implements PastryStateObject.
Definition at line 146 of file PastryNeighborhoodSet.cc.
Referenced by Bamboo::handleFailedNode(), and Pastry::handleFailedNode().
      
  | 
  virtual | 
try to find a node numerically closer to a given key with the same shared prefix as the current node in the neighborhood set.
this method is to be called, when a regular next hop couldn't be found or wasn't reachable.
| destination | the destination key | 
| optimize | if set, check all nodes and return the best/closest one | 
Implements PastryStateObject.
Definition at line 69 of file PastryNeighborhoodSet.cc.
Referenced by BasePastry::findNode().
      
  | 
  virtual | 
Implements PastryStateObject.
Definition at line 97 of file PastryNeighborhoodSet.cc.
Referenced by BasePastry::findNode().
| void PastryNeighborhoodSet::initializeSet | ( | uint32_t | numberOfNeighbors, | 
| uint32_t | bitsPerDigit, | ||
| const NodeHandle & | owner | ||
| ) | 
Initializes the neighborhood set.
This should be called on startup
| numberOfNeighbors | Pastry configuration parameter | 
| bitsPerDigit | number of bits per digits | 
| owner | the node this table belongs to | 
Definition at line 37 of file PastryNeighborhoodSet.cc.
Referenced by BasePastry::baseChangeState().
      
  | 
  virtual | 
merge a node into NeighborhoodSet
| node | the node to merge | 
| prox | proximity value of the node | 
Implements PastryStateObject.
Definition at line 108 of file PastryNeighborhoodSet.cc.
      
  | 
  private | 
Definition at line 113 of file PastryNeighborhoodSet.h.
Referenced by dumpToStateMessage(), dumpToVector(), earlyInit(), failedNode(), findCloserNode(), findCloserNodes(), initializeSet(), and mergeNode().
      
  | 
  private | 
Definition at line 112 of file PastryNeighborhoodSet.h.
Referenced by dumpToStateMessage(), and initializeSet().