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.socket
Class PingManager

    java.lang.Object
      rice.selector.SelectionKeyHandler
          rice.pastry.socket.PingManager

    public class PingManager

extends SelectionKeyHandler

Version:
  $Id: PingManager.java 3613 2007-02-15 14:45:14Z jstewart $
Author:
  jeffh To change the template for this generated type comment go to Window>Preferences>Java>Code Generation>Code and Comments

Nested Class Summary
`class` | `PingManager.Envelope` Internal class which holds a pending datagram

Field Summary
`int` | `DATAGRAM_RECEIVE_BUFFER_SIZE`
`int` | `DATAGRAM_SEND_BUFFER_SIZE`
`static int` | `HEADER_SIZE`
`protected java.util.Map` | `lastPingTime`
`int` | `MIN_RTT`
`protected java.util.ArrayList` | `pendingMsgs`
`static int` | `PING_THROTTLE`
`protected java.util.Map` | `pingListeners`

Constructor Summary
`PingManager(SocketPastryNode spn, SocketSourceRouteManager manager, EpochInetSocketAddress bindAddress, EpochInetSocketAddress proxyAddress)`

Method Summary
`protected void` | `addPingResponseListener(SourceRoute path, PingResponseListener prl)` Adds a feature to the PingResponseListener attribute of the PingManager object
`SourceRoute` | `decodeHeader(byte[] header, int numAddresses)` Method which adds a header for the provided path to the given data.
`void` | `enqueue(SourceRoute path, PRawMessage msg)`
`void` | `enqueue(SourceRoute path, SocketBuffer msg)` DESCRIBE THE METHOD
`void` | `modifyKey(java.nio.channels.SelectionKey key)` DESCRIBE THE METHOD
`protected void` | `notifyPingResponseListeners(SourceRoute path, int proximity, long lastTimePinged)` caller must synchronized(pingResponseTimes)
`protected void` | `ping(SourceRoute path, PingResponseListener prl)` Method which actually sends a ping to over the specified path, and returns the result to the specified listener.
`void` | `read(java.nio.channels.SelectionKey key)` DESCRIBE THE METHOD
`protected void` | `readHeader(java.net.InetSocketAddress address)` Method which processes an incoming message and hands it off to the appropriate handler.
`void` | `receiveMessage(SourceRoute sr, DatagramMessage dm, int size, SourceRoute fromPath)` DESCRIBE THE METHOD
`protected void` | `removePingResponseListener(SourceRoute path, PingResponseListener prl)` Adds a feature to the PingResponseListener attribute of the PingManager object
`protected void` | `resign()` Makes this node resign from the network.
`void` | `stall()` Internal testing method which simulates a stall.
`void` | `write(java.nio.channels.SelectionKey key)` DESCRIBE THE METHOD

Methods inherited from class rice.selector.SelectionKeyHandler
`accept, connect`

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

Field Detail

### PING_THROTTLE

    public static final int PING_THROTTLE

See Also:
  Constant Field Values

### HEADER_SIZE

    public static final int HEADER_SIZE

### DATAGRAM_RECEIVE_BUFFER_SIZE

    public final int DATAGRAM_RECEIVE_BUFFER_SIZE

### DATAGRAM_SEND_BUFFER_SIZE

    public final int DATAGRAM_SEND_BUFFER_SIZE

### MIN_RTT

    public final int MIN_RTT

See Also:
  Constant Field Values

### pingListeners

    protected java.util.Map pingListeners

### lastPingTime

    protected java.util.Map lastPingTime

### pendingMsgs

    protected java.util.ArrayList pendingMsgs

Constructor Detail

### PingManager

    public PingManager(SocketPastryNode spn,
                       SocketSourceRouteManager manager,
                       EpochInetSocketAddress bindAddress,
                       EpochInetSocketAddress proxyAddress)
                throws java.io.IOException

Parameters:
  `port` - DESCRIBE THE PARAMETER
  `manager` - DESCRIBE THE PARAMETER
  `pool` - DESCRIBE THE PARAMETER
Throws:
  `java.io.IOException`

Method Detail

### ping

    protected void ping(SourceRoute path,
                        PingResponseListener prl)

  Method which actually sends a ping to over the specified path, and returns the result to the specified listener. Note that if no ping response is ever received, the listener is never called.

  Parameters:
    `path` - The path to send the ping over
    `prl` - The listener which should hear about the response

### resign

    protected void resign()
                   throws java.io.IOException

  Makes this node resign from the network. Is designed to be used for debugging and testing.

  Throws:
    `java.io.IOException`

### stall

    public void stall()

  Internal testing method which simulates a stall. DO NOT USE!!!!!

### removePingResponseListener

    protected void removePingResponseListener(SourceRoute path,
                                              PingResponseListener prl)

  Adds a feature to the PingResponseListener attribute of the PingManager object

  Parameters:
    `address` - The feature to be added to the PingResponseListener attribute
    `prl` - The feature to be added to the PingResponseListener attribute

### addPingResponseListener

    protected void addPingResponseListener(SourceRoute path,
                                           PingResponseListener prl)

  Adds a feature to the PingResponseListener attribute of the PingManager object

  Parameters:
    `address` - The feature to be added to the PingResponseListener attribute
    `prl` - The feature to be added to the PingResponseListener attribute

### notifyPingResponseListeners

    protected void notifyPingResponseListeners(SourceRoute path,
                                               int proximity,
                                               long lastTimePinged)

  caller must synchronized(pingResponseTimes)

  Parameters:
    `address` -
    `proximity` -
    `lastTimePinged` -

### enqueue

    public void enqueue(SourceRoute path,
                        PRawMessage msg)

### enqueue

    public void enqueue(SourceRoute path,
                        SocketBuffer msg)

  DESCRIBE THE METHOD

  Parameters:
    `address` - DESCRIBE THE PARAMETER
    `msg` - DESCRIBE THE PARAMETER

### receiveMessage

    public void receiveMessage(SourceRoute sr,
                               DatagramMessage dm,
                               int size,
                               SourceRoute fromPath)
                        throws java.io.IOException

  DESCRIBE THE METHOD

  Parameters:
    `message` - DESCRIBE THE PARAMETER
    `address` - DESCRIBE THE PARAMETER
  Throws:
    `java.io.IOException`

### read

    public void read(java.nio.channels.SelectionKey key)

  DESCRIBE THE METHOD

  Overrides:
    `read` in class `SelectionKeyHandler`
  Parameters:
    `key` - DESCRIBE THE PARAMETER

### write

    public void write(java.nio.channels.SelectionKey key)

  DESCRIBE THE METHOD

  Overrides:
    `write` in class `SelectionKeyHandler`
  Parameters:
    `key` - DESCRIBE THE PARAMETER

### modifyKey

    public void modifyKey(java.nio.channels.SelectionKey key)

  DESCRIBE THE METHOD

  Overrides:
    `modifyKey` in class `SelectionKeyHandler`
  Parameters:
    `key` - DESCRIBE THE PARAMETER

### decodeHeader

    public SourceRoute decodeHeader(byte[] header,
                                    int numAddresses)
                             throws java.io.IOException

  Method which adds a header for the provided path to the given data.

  Returns:
    The messag with a header attached
  Throws:
    `java.io.IOException`

### readHeader

    protected void readHeader(java.net.InetSocketAddress address)
                       throws java.io.IOException

  Method which processes an incoming message and hands it off to the appropriate handler.

  Throws:
    `java.io.IOException`

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.