rice.pastry.direct
Class BasicNetworkSimulator<Identifier,MessageType>
java.lang.Object
org.mpisws.p2p.transport.direct.EventSimulator
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>
|
Method Summary |
void |
addLivenessListener(LivenessListener<Identifier> name)
|
boolean |
checkLiveness(Identifier i,
Map<String,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,
Map<String,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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
MIN_DELAY
protected int MIN_DELAY
maxDiameter
protected final int maxDiameter
minDelay
protected final int minDelay
BasicNetworkSimulator
public BasicNetworkSimulator(Environment env,
RandomSource random,
NetworkSimulator<Identifier,MessageType> sim)
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 setalive - 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 NodeIdb - 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 NodeIdb - 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,
Map<String,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,
Map<String,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>
Copyright © 2010. All Rights Reserved.