Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## rice.pastry.direct
Class NetworkSimulatorImpl<Identifier,MessageType>

    java.lang.Object
      rice.pastry.direct.NetworkSimulatorImpl<Identifier,MessageType>

All Implemented Interfaces:
  NetworkSimulator<Identifier,MessageType>

Direct Known Subclasses:
  EuclideanNetwork, GenericNetwork, SphereNetwork

    public class NetworkSimulatorImpl<Identifier,MessageType>

extends java.lang.Object
implements NetworkSimulator<Identifier,MessageType>

Field Summary
`protected ProximityGenerator` | `generator`
`protected LivenessProvider<Identifier>` | `livenessProvider`
`protected RandomSource` | `random`
`protected BasicNetworkSimulator<Identifier,MessageType>` | `simulator`

Constructor Summary
`NetworkSimulatorImpl(Environment env, ProximityGenerator generator)`

Method Summary
`boolean` | `addSimulatorListener(SimulatorListener sl)`
`void` | `destroy(DirectPastryNode dpn)`
`CancellableTask` | `enqueueDelivery(Delivery del, int delay)` Deliver message.
`NodeRecord` | `generateNodeRecord()` Generates a random node record
`DirectNodeHandle` | `getClosest(DirectNodeHandle nh)` Returns the closest Node in proximity.
`Environment` | `getEnvironment()`
`GenericNetworkSimulator<Identifier,MessageType>` | `getGenericSimulator()`
`LivenessProvider<Identifier>` | `getLivenessProvider()`
`NodeRecord` | `getNodeRecord(DirectNodeHandle handle)`
`TestRecord` | `getTestRecord()` get TestRecord
`boolean` | `isAlive(Identifier nh)` Checks to see if a node id is alive.
`float` | `networkDelay(Identifier a, Identifier b)` Determines delivery time from a to b.
`void` | `notifySimulatorListenersReceived(Message m, NodeHandle from, NodeHandle to)` Call this when a message is received.
`void` | `notifySimulatorListenersSent(Message m, NodeHandle from, NodeHandle to, int delay)` Call this when a message is sent.
`float` | `proximity(Identifier a, Identifier b)` Determines rtt between two nodes.
`void` | `registerNode(Identifier i, DirectTransportLayer<Identifier,MessageType> dtl, NodeRecord nr)`
`void` | `removeNode(TLPastryNode node)` Registers a node handle with the simulator.
`boolean` | `removeSimulatorListener(SimulatorListener sl)`
`void` | `setFullSpeed()` unlimited maxSpeed
`void` | `setMaxSpeed(float rate)` The max rate of the simulator compared to realtime.
`void` | `setTestRecord(TestRecord tr)` set TestRecord
`void` | `start()`
`void` | `stop()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### simulator

    protected BasicNetworkSimulator<Identifier,MessageType> simulator

### random

    protected RandomSource random

### generator

    protected ProximityGenerator generator

### livenessProvider

    protected LivenessProvider<Identifier> livenessProvider

Constructor Detail

### NetworkSimulatorImpl

    public NetworkSimulatorImpl(Environment env,
                                ProximityGenerator generator)

Method Detail

### getEnvironment

    public Environment getEnvironment()

  Specified by:
    `getEnvironment` in interface `NetworkSimulator<Identifier,MessageType>`

### setFullSpeed

    public void setFullSpeed()

  Description copied from interface: `NetworkSimulator`
  unlimited maxSpeed

  Specified by:
    `setFullSpeed` in interface `NetworkSimulator<Identifier,MessageType>`

### setMaxSpeed

    public void setMaxSpeed(float rate)

  Description copied from interface: `NetworkSimulator`
  The max rate of the simulator compared to realtime. The rule is that the simulated clock will not be set to a value greater than the factor from system-time that the call was made. Thus if 1 hour ago, you said the simulator should run at 10x realtime the simulated clock will only have advanced 10 hours. Note that if the simulator cannot keep up with the system clock in the early part, it may move faster than the value you set to "catch up" To prevent this speed-up from becoming unbounded, you may wish to call setMaxSpeed() periodically or immediately after periods of expensive calculations. Setting the simulation speed to zero will not pause the simulation, you must call stop() to do that.

  Specified by:
    `setMaxSpeed` in interface `NetworkSimulator<Identifier,MessageType>`

### start

    public void start()

  Specified by:
    `start` in interface `NetworkSimulator<Identifier,MessageType>`

### stop

    public void stop()

  Specified by:
    `stop` in interface `NetworkSimulator<Identifier,MessageType>`

### getTestRecord

    public TestRecord getTestRecord()

  get TestRecord

  Specified by:
    `getTestRecord` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:
    the returned TestRecord

### setTestRecord

    public void setTestRecord(TestRecord tr)

  set TestRecord

  Specified by:
    `setTestRecord` in interface `NetworkSimulator<Identifier,MessageType>`
  Parameters:
    `tr` - input TestRecord

### addSimulatorListener

    public boolean addSimulatorListener(SimulatorListener sl)

  Specified by:
    `addSimulatorListener` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:
    true if added, false if already a listener

### removeSimulatorListener

    public boolean removeSimulatorListener(SimulatorListener sl)

  Specified by:
    `removeSimulatorListener` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:
    true if removed, false if not already a listener

### notifySimulatorListenersSent

    public void notifySimulatorListenersSent(Message m,
                                             NodeHandle from,
                                             NodeHandle to,
                                             int delay)

  Description copied from interface: `NetworkSimulator`
  Call this when a message is sent.

  Specified by:
    `notifySimulatorListenersSent` in interface `NetworkSimulator<Identifier,MessageType>`
  Parameters:
    `m` - the message
    `from` - the source
    `to` - the destination
    `delay` - the network proximity (when the message will be received)

### notifySimulatorListenersReceived

    public void notifySimulatorListenersReceived(Message m,
                                                 NodeHandle from,
                                                 NodeHandle to)

  Description copied from interface: `NetworkSimulator`
  Call this when a message is received.

  Specified by:
    `notifySimulatorListenersReceived` in interface `NetworkSimulator<Identifier,MessageType>`
  Parameters:
    `m` - the message
    `from` - the source
    `to` - the destination

### destroy

    public void destroy(DirectPastryNode dpn)

  Specified by:
    `destroy` in interface `NetworkSimulator<Identifier,MessageType>`

### enqueueDelivery

    public CancellableTask enqueueDelivery(Delivery del,
                                           int delay)

  Description copied from interface: `NetworkSimulator`
  Deliver message.

  Specified by:
    `enqueueDelivery` in interface `NetworkSimulator<Identifier,MessageType>`

### generateNodeRecord

    public NodeRecord generateNodeRecord()

  Description copied from interface: `NetworkSimulator`
  Generates a random node record

  Specified by:
    `generateNodeRecord` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:

### getClosest

    public DirectNodeHandle getClosest(DirectNodeHandle nh)

  Description copied from interface: `NetworkSimulator`
  Returns the closest Node in proximity.

  Specified by:
    `getClosest` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:

### isAlive

    public boolean isAlive(Identifier nh)

  Description copied from interface: `NetworkSimulator`
  Checks to see if a node id is alive.

  Specified by:
    `isAlive` in interface `NetworkSimulator<Identifier,MessageType>`
  Returns:
    true if alive, false otherwise.

### networkDelay

    public float networkDelay(Identifier a,
                              Identifier b)

  Description copied from interface: `NetworkSimulator`
  Determines delivery time from a to b.

  Specified by:
    `networkDelay` in interface `NetworkSimulator<Identifier,MessageType>`
  Parameters:
    `a` - a node id.
    `b` - another node id.
  Returns:
    proximity of b to a.

### proximity

    public float proximity(Identifier a,
                           Identifier b)

  Description copied from interface: `NetworkSimulator`
  Determines rtt between two nodes.

  Specified by:
    `proximity` in interface `NetworkSimulator<Identifier,MessageType>`
  Parameters:
    `a` - a node id.
    `b` - another node id.
  Returns:
    proximity of b to a.

### removeNode

    public void removeNode(TLPastryNode node)

  Description copied from interface: `NetworkSimulator`
  Registers a node handle with the simulator.

  Specified by:
    `removeNode` in interface `NetworkSimulator<Identifier,MessageType>`

### getNodeRecord

    public NodeRecord getNodeRecord(DirectNodeHandle handle)

  Specified by:
    `getNodeRecord` in interface `NetworkSimulator<Identifier,MessageType>`

### getLivenessProvider

    public LivenessProvider<Identifier> getLivenessProvider()

  Specified by:
    `getLivenessProvider` in interface `NetworkSimulator<Identifier,MessageType>`

### getGenericSimulator

    public GenericNetworkSimulator<Identifier,MessageType> getGenericSimulator()

  Specified by:
    `getGenericSimulator` in interface `NetworkSimulator<Identifier,MessageType>`

### registerNode

    public void registerNode(Identifier i,
                             DirectTransportLayer<Identifier,MessageType> dtl,
                             NodeRecord nr)

  Specified by:
    `registerNode` in interface `NetworkSimulator<Identifier,MessageType>`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Rice Pastry API
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2005 - Rice Pastry.