ariba::overlay::Chord Class Reference

#include <source/ariba/overlay/modules/chord/Chord.h>

Inheritance diagram for ariba::overlay::Chord:

Inheritance graph
[legend]
Collaboration diagram for ariba::overlay::Chord:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Chord (BaseOverlay &_baseoverlay, const NodeID &_nodeid, OverlayStructureEvents *_eventsReceiver, const OverlayParameterSet &param)
virtual ~Chord ()
virtual void createOverlay ()
virtual void deleteOverlay ()
virtual void joinOverlay (const EndpointDescriptor &boot=EndpointDescriptor::UNSPECIFIED)
virtual void leaveOverlay ()
virtual const EndpointDescriptorresolveNode (const NodeID &node)
virtual void routeMessage (const NodeID &destnode, Message *msg)
virtual NodeList getKnownNodes () const
virtual void onLinkUp (const LinkID &lnk, const NodeID &remote)
virtual void onLinkDown (const LinkID &lnk, const NodeID &remote)
virtual void onMessage (const DataMessage &msg, const NodeID &remote, const LinkID &lnk=LinkID::UNSPECIFIED)
virtual void eventFunction ()

Private Member Functions

 use_logging_h (Chord)
LinkID setup (const EndpointDescriptor &endp)
 helper: sets up a link using the base overlay
seqnum_t send (Message *msg, const LinkID &link)
 helper: sends a message using the "base overlay"
void send_discovery_to (const NodeID &destination, int ttl=4)
 sends a discovery message

Private Attributes

chord_routing_tabletable
int orphan_removal_counter
int stabilize_counter
int stabilize_finger
LinkID bootstrapLink


Detailed Description

This class implements a structured overlay inspired by chord. It differs to the original form of chord in the following manner:

(1) The graph is bidirectional (2) Stabilization is done in a reactive manner

It therefore can be considered as a kind of Chorded-Kademlia :)

The resulting overlay graph has a diameter of O(log N).

Author:
Sebastian Mies <mies@tm.uka.de>

Definition at line 71 of file Chord.h.


Constructor & Destructor Documentation

ariba::overlay::Chord::Chord ( BaseOverlay _baseoverlay,
const NodeID _nodeid,
OverlayStructureEvents _eventsReceiver,
const OverlayParameterSet &  param 
)

ariba::overlay::Chord::~Chord (  )  [virtual]

Definition at line 66 of file Chord.cpp.

References table.


Member Function Documentation

ariba::overlay::Chord::use_logging_h ( Chord   )  [private]

LinkID ariba::overlay::Chord::setup ( const EndpointDescriptor endp  )  [private]

seqnum_t ariba::overlay::Chord::send ( Message msg,
const LinkID link 
) [private]

helper: sends a message using the "base overlay"

Definition at line 81 of file Chord.cpp.

References ariba::overlay::OverlayInterface::baseoverlay, ariba::utility::Identifier::isUnspecified(), and ariba::overlay::BaseOverlay::sendMessage().

Referenced by leaveOverlay(), onMessage(), and routeMessage().

void ariba::overlay::Chord::send_discovery_to ( const NodeID destination,
int  ttl = 4 
) [private]

void ariba::overlay::Chord::createOverlay (  )  [virtual]

See also:
OverlayInterface.h

Implements ariba::overlay::OverlayInterface.

Definition at line 100 of file Chord.cpp.

void ariba::overlay::Chord::deleteOverlay (  )  [virtual]

See also:
OverlayInterface.h

Implements ariba::overlay::OverlayInterface.

Definition at line 103 of file Chord.cpp.

void ariba::overlay::Chord::joinOverlay ( const EndpointDescriptor boot = EndpointDescriptor::UNSPECIFIED  )  [virtual]

void ariba::overlay::Chord::leaveOverlay (  )  [virtual]

const EndpointDescriptor & ariba::overlay::Chord::resolveNode ( const NodeID node  )  [virtual]

void ariba::overlay::Chord::routeMessage ( const NodeID destnode,
Message msg 
) [virtual]

OverlayInterface::NodeList ariba::overlay::Chord::getKnownNodes (  )  const [virtual]

See also:
OverlayInterface.h

Implements ariba::overlay::OverlayInterface.

Definition at line 148 of file Chord.cpp.

References chord_routing_table::size(), and table.

void ariba::overlay::Chord::onLinkUp ( const LinkID lnk,
const NodeID remote 
) [virtual]

void ariba::overlay::Chord::onLinkDown ( const LinkID lnk,
const NodeID remote 
) [virtual]

void ariba::overlay::Chord::onMessage ( const DataMessage msg,
const NodeID remote,
const LinkID link = LinkID::UNSPECIFIED 
) [virtual]

void ariba::overlay::Chord::eventFunction (  )  [virtual]


Member Data Documentation

Definition at line 75 of file Chord.h.

Referenced by Chord(), and eventFunction().

Definition at line 76 of file Chord.h.

Referenced by Chord(), and eventFunction().

Definition at line 77 of file Chord.h.

Referenced by Chord(), and eventFunction().

Definition at line 78 of file Chord.h.

Referenced by Chord(), joinOverlay(), and onLinkUp().


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

Generated on Wed May 27 18:24:04 2009 for Ariba by  doxygen 1.5.6