Rice Pastry API

rice.pastry.direct
Class BasicNetworkSimulator<Identifier,MessageType>

java.lang.Object
  extended by org.mpisws.p2p.transport.direct.EventSimulator
      extended by rice.pastry.direct.BasicNetworkSimulator<Identifier,MessageType>
All Implemented Interfaces:
GenericNetworkSimulator<Identifier,MessageType>, LivenessProvider<Identifier>, LivenessTypes

public class BasicNetworkSimulator<Identifier,MessageType>
extends EventSimulator
implements GenericNetworkSimulator<Identifier,MessageType>


Field Summary
protected  int maxDiameter
           
protected  int MIN_DELAY
           
protected  int minDelay
           
 
Fields inherited from class org.mpisws.p2p.transport.direct.EventSimulator
environment, logger, manager, random, timeSource
 
Fields inherited from interface org.mpisws.p2p.transport.liveness.LivenessTypes
LIVENESS_ALIVE, LIVENESS_DEAD, LIVENESS_DEAD_FOREVER, LIVENESS_SUSPECTED
 
Constructor Summary
BasicNetworkSimulator(Environment env, RandomSource random, NetworkSimulator<Identifier,MessageType> sim)
           
 
Method Summary
 void addLivenessListener(LivenessListener<Identifier> name)
           
 boolean checkLiveness(Identifier i, java.util.Map<java.lang.String,java.lang.Object> options)
          Returns whether a new notification will occur.
 void clearState(Identifier i)
          Force layer to clear the existing state related to the Identifier.
 Cancellable deliverMessage(MessageType msg, Identifier node, Identifier from)
          node should always be a local node, because this will be delivered instantly
 Cancellable deliverMessage(MessageType msg, Identifier node, Identifier from, int delay)
          Deliver message.
 Cancellable deliverMessage(MessageType msg, Identifier node, Identifier from, int delay, int period)
           
 Cancellable deliverMessageFixedRate(MessageType msg, Identifier node, Identifier from, int delay, int period)
           
 CancellableTask enqueueDelivery(Delivery d, int delay)
          Deliver message.
 Environment getEnvironment()
           
 Environment getEnvironment(Identifier i)
          Get the environment related to a specific node.
 int getLiveness(Identifier i, java.util.Map<java.lang.String,java.lang.Object> options)
           
 NodeRecord getNodeRecord(DirectNodeHandle handle)
           
 RandomSource getRandomSource()
           
 DirectTransportLayer<Identifier,MessageType> getTL(Identifier i)
           
 boolean isAlive(Identifier i)
           
 float networkDelay(Identifier a, Identifier b)
          computes the one-way distance between two NodeIds
 float proximity(Identifier a, Identifier b)
          computes the rtt between two NodeIds
 void registerIdentifier(Identifier i, DirectTransportLayer<Identifier,MessageType> dtl, NodeRecord record)
          set the liveliness of a NodeId
 void remove(Identifier i)
          Kill identifier.
 boolean removeLivenessListener(LivenessListener<Identifier> name)
           
 
Methods inherited from class org.mpisws.p2p.transport.direct.EventSimulator
setFullSpeed, setMaxSpeed, simulate, start, stop
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.mpisws.p2p.transport.direct.GenericNetworkSimulator
setFullSpeed, setMaxSpeed, start, stop
 

Field Detail

MIN_DELAY

protected int MIN_DELAY

maxDiameter

protected final int maxDiameter

minDelay

protected final int minDelay
Constructor Detail

BasicNetworkSimulator

public BasicNetworkSimulator(Environment env,
                             RandomSource random,
                             NetworkSimulator<Identifier,MessageType> sim)
Method Detail

enqueueDelivery

public CancellableTask enqueueDelivery(Delivery d,
                                       int delay)
Description copied from interface: GenericNetworkSimulator
Deliver message.

Specified by:
enqueueDelivery in interface GenericNetworkSimulator<Identifier,MessageType>

deliverMessage

public Cancellable deliverMessage(MessageType msg,
                                  Identifier node,
                                  Identifier from)
node should always be a local node, because this will be delivered instantly


deliverMessage

public Cancellable deliverMessage(MessageType msg,
                                  Identifier node,
                                  Identifier from,
                                  int delay)
Description copied from interface: GenericNetworkSimulator
Deliver message.

Specified by:
deliverMessage in interface GenericNetworkSimulator<Identifier,MessageType>
Parameters:
msg - message to deliver.

deliverMessageFixedRate

public Cancellable deliverMessageFixedRate(MessageType msg,
                                           Identifier node,
                                           Identifier from,
                                           int delay,
                                           int period)

deliverMessage

public Cancellable deliverMessage(MessageType msg,
                                  Identifier node,
                                  Identifier from,
                                  int delay,
                                  int period)

registerIdentifier

public void registerIdentifier(Identifier i,
                               DirectTransportLayer<Identifier,MessageType> dtl,
                               NodeRecord record)
set the liveliness of a NodeId

Parameters:
nid - the NodeId being set
alive - the value being set

remove

public void remove(Identifier i)
Description copied from interface: GenericNetworkSimulator
Kill identifier.

Specified by:
remove in interface GenericNetworkSimulator<Identifier,MessageType>

getEnvironment

public Environment getEnvironment()
Specified by:
getEnvironment in interface GenericNetworkSimulator<Identifier,MessageType>

getEnvironment

public Environment getEnvironment(Identifier i)
Description copied from interface: GenericNetworkSimulator
Get the environment related to a specific node.

Specified by:
getEnvironment in interface GenericNetworkSimulator<Identifier,MessageType>
Returns:

getRandomSource

public RandomSource getRandomSource()
Specified by:
getRandomSource in interface GenericNetworkSimulator<Identifier,MessageType>

isAlive

public boolean isAlive(Identifier i)
Specified by:
isAlive in interface GenericNetworkSimulator<Identifier,MessageType>

getTL

public DirectTransportLayer<Identifier,MessageType> getTL(Identifier i)
Specified by:
getTL in interface GenericNetworkSimulator<Identifier,MessageType>

networkDelay

public float networkDelay(Identifier a,
                          Identifier b)
computes the one-way distance between two NodeIds

Specified by:
networkDelay in interface GenericNetworkSimulator<Identifier,MessageType>
Parameters:
a - the first NodeId
b - the second NodeId
Returns:
the proximity between the two input NodeIds

proximity

public float proximity(Identifier a,
                       Identifier b)
computes the rtt between two NodeIds

Parameters:
a - the first NodeId
b - the second NodeId
Returns:
the proximity between the two input NodeIds

getNodeRecord

public NodeRecord getNodeRecord(DirectNodeHandle handle)

addLivenessListener

public void addLivenessListener(LivenessListener<Identifier> name)
Specified by:
addLivenessListener in interface LivenessProvider<Identifier>

removeLivenessListener

public boolean removeLivenessListener(LivenessListener<Identifier> name)
Specified by:
removeLivenessListener in interface LivenessProvider<Identifier>

checkLiveness

public boolean checkLiveness(Identifier i,
                             java.util.Map<java.lang.String,java.lang.Object> options)
Description copied from interface: LivenessProvider
Returns whether a new notification will occur. Will return false if a liveness check has recently completed. Will return true if a new liveness check starts, or an existing one is in progress.

Specified by:
checkLiveness in interface LivenessProvider<Identifier>
Parameters:
i - the node to check
Returns:
true if there will be an update (either a ping, or a change in liveness) false if there won't be an update due to bandwidth concerns

getLiveness

public int getLiveness(Identifier i,
                       java.util.Map<java.lang.String,java.lang.Object> options)
Specified by:
getLiveness in interface LivenessProvider<Identifier>

clearState

public void clearState(Identifier i)
Description copied from interface: LivenessProvider
Force layer to clear the existing state related to the Identifier. Usually if there is reason to believe a node has returned.

Specified by:
clearState in interface LivenessProvider<Identifier>

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection