peersim.skipnet
Class Skipnet

java.lang.Object
  extended by peersim.skipnet.Skipnet
All Implemented Interfaces:
java.lang.Cloneable, peersim.core.Cleanable, peersim.core.Linkable, peersim.core.Protocol, peersim.edsim.EDProtocol

public class Skipnet
extends java.lang.Object
implements peersim.edsim.EDProtocol, peersim.core.Linkable

This class implements the peersim.extras.am.skipnet protocol functionality. It needs to be initialized from a SkipnetInit instance. For protocol details see SkipNet: A Scalable Overlay Network with Practical Locality Properties


Field Summary
protected  SkipnetName localname
           
protected  peersim.core.Node localnode
           
protected  NumericId localNumId
           
protected  int pid
           
protected  SkipnetRoutingTable routingTable
           
protected  edu.uci.ics.jung.graph.Vertex vertex
           
 
Constructor Summary
Skipnet(java.lang.String prefix)
           
 
Method Summary
 boolean addNeighbor(peersim.core.Node neighbour)
           
 java.lang.Object clone()
           
 boolean contains(peersim.core.Node neighbor)
           
 int degree()
           
 void deliver(peersim.skipnet.messages.SkipnetMessage msg)
           
 int getHeight()
           
 SkipnetName getLocalname()
           
 peersim.core.Node getLocalnode()
           
 NumericId getLocalNumId()
           
 peersim.core.Node getNeighbor(int i)
           
 SkipnetRoutingTable getRoutingTable()
           
 peersim.core.Node getSeed()
           
 void onKill()
           
 void pack()
           
 void processEvent(peersim.core.Node localnode, int pid, java.lang.Object event)
           
 void routeByName(peersim.skipnet.messages.NameRoutingMessage msg)
           
 void routeByNumericID(peersim.skipnet.messages.NumericRoutingMessage msg)
           
 void sendData(NumericId destination, java.lang.Object data, peersim.skipnet.messages.SkipnetMessageCallback callback)
           
 void sendData(SkipnetName destination, java.lang.Object data, peersim.skipnet.messages.SkipnetMessageCallback callback)
           
protected  void sendMessage(peersim.core.Node dest, peersim.skipnet.messages.SkipnetMessage msg)
           
protected  void sendMessage(peersim.core.Node dest, peersim.skipnet.messages.SkipnetMessage msg, int pid)
           
protected  void sendMessage(peersim.skipnet.messages.SkipnetMessage msg)
           
 void setLocalnode(peersim.core.Node localnode)
           
 void setSeed(peersim.core.Node seed)
           
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

pid

protected int pid

localNumId

protected NumericId localNumId

localname

protected SkipnetName localname

localnode

protected peersim.core.Node localnode

routingTable

protected SkipnetRoutingTable routingTable

vertex

protected edu.uci.ics.jung.graph.Vertex vertex
Constructor Detail

Skipnet

public Skipnet(java.lang.String prefix)
Parameters:
prefix - string prefix for config properties
Method Detail

processEvent

public void processEvent(peersim.core.Node localnode,
                         int pid,
                         java.lang.Object event)
Specified by:
processEvent in interface peersim.edsim.EDProtocol

routeByNumericID

public void routeByNumericID(peersim.skipnet.messages.NumericRoutingMessage msg)

routeByName

public void routeByName(peersim.skipnet.messages.NameRoutingMessage msg)

deliver

public void deliver(peersim.skipnet.messages.SkipnetMessage msg)

clone

public java.lang.Object clone()
Specified by:
clone in interface peersim.core.Protocol
Overrides:
clone in class java.lang.Object

sendMessage

protected void sendMessage(peersim.skipnet.messages.SkipnetMessage msg)

sendMessage

protected void sendMessage(peersim.core.Node dest,
                           peersim.skipnet.messages.SkipnetMessage msg)

sendMessage

protected void sendMessage(peersim.core.Node dest,
                           peersim.skipnet.messages.SkipnetMessage msg,
                           int pid)

getSeed

public peersim.core.Node getSeed()

setSeed

public void setSeed(peersim.core.Node seed)

sendData

public void sendData(SkipnetName destination,
                     java.lang.Object data,
                     peersim.skipnet.messages.SkipnetMessageCallback callback)

sendData

public void sendData(NumericId destination,
                     java.lang.Object data,
                     peersim.skipnet.messages.SkipnetMessageCallback callback)

addNeighbor

public boolean addNeighbor(peersim.core.Node neighbour)
Specified by:
addNeighbor in interface peersim.core.Linkable

contains

public boolean contains(peersim.core.Node neighbor)
Specified by:
contains in interface peersim.core.Linkable

degree

public int degree()
Specified by:
degree in interface peersim.core.Linkable

getNeighbor

public peersim.core.Node getNeighbor(int i)
Specified by:
getNeighbor in interface peersim.core.Linkable

pack

public void pack()
Specified by:
pack in interface peersim.core.Linkable

onKill

public void onKill()
Specified by:
onKill in interface peersim.core.Cleanable

getLocalNumId

public NumericId getLocalNumId()

getLocalname

public SkipnetName getLocalname()

getLocalnode

public peersim.core.Node getLocalnode()

getRoutingTable

public SkipnetRoutingTable getRoutingTable()

setLocalnode

public void setLocalnode(peersim.core.Node localnode)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getHeight

public int getHeight()