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 SocketPastryNodeFactory

    java.lang.Object
      rice.pastry.PastryNodeFactory
          rice.pastry.dist.DistPastryNodeFactory
              rice.pastry.socket.SocketPastryNodeFactory

public class SocketPastryNodeFactory
extends DistPastryNodeFactory

Pastry node factory for Socket-linked nodes.

Version:
  $Id: SocketPastryNodeFactory.java,v 1.6 2004/03/08 19:53:57 amislove Exp $
Author:
  Alan Mislove

Field Summary

Fields inherited from class rice.pastry.dist.DistPastryNodeFactory
`PROTOCOL_DEFAULT, PROTOCOL_SOCKET`

Constructor Summary
`SocketPastryNodeFactory(NodeIdFactory nf, int startPort)` Constructor.

Method Summary
`NodeHandle` | `generateNodeHandle(java.net.InetSocketAddress address)` Method which contructs a node handle (using the socket protocol) for the node at address NodeHandle.
`LeafSet` | `getLeafSet(NodeHandle handle)` This method returns the remote leafset of the provided handle to the caller, in a protocol-dependent fashion.
`int` | `getProximity(NodeHandle local, NodeHandle handle)` This method determines and returns the proximity of the current local node the provided NodeHandle.
`protected Message` | `getResponse(java.net.InetSocketAddress address, Message message)` This method anonymously sends the given message to the remote address, blocks until a response is received, and then closes the socket and returns the response.
`RouteSet[]` | `getRouteRow(NodeHandle handle, int row)` This method returns the remote route row of the provided handle to the caller, in a protocol-dependent fashion.
`SourceRoute[]` | `getRoutes(NodeHandle handle)` This method returns the routes a remote node is using
`PastryNode` | `newNode(NodeHandle bootstrap)` Method which creates a Pastry node from the next port with a randomly generated NodeId.
`PastryNode` | `newNode(NodeHandle bootstrap, java.net.InetSocketAddress proxy)` Method which creates a Pastry node from the next port with a randomly generated NodeId.
`PastryNode` | `newNode(NodeHandle bootstrap, NodeId nodeId)` Method which creates a Pastry node from the next port with a randomly generated NodeId.
`PastryNode` | `newNode(NodeHandle bootstrap, NodeId nodeId, java.net.InetSocketAddress pAddress)` Method which creates a Pastry node from the next port with a randomly generated NodeId.
`static java.net.InetSocketAddress` | `verifyConnection(int timeout, java.net.InetSocketAddress local, java.net.InetSocketAddress[] existing)` Method which can be used to test the connectivity contstrains of the local node.

Methods inherited from class rice.pastry.dist.DistPastryNodeFactory
`getFactory, getNodeHandle, getNodeHandle`

Methods inherited from class rice.pastry.PastryNodeFactory
`getNearest`

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

Constructor Detail

### SocketPastryNodeFactory

    public SocketPastryNodeFactory(NodeIdFactory nf,
                                   int startPort)

  Constructor.

Parameters:
  `nf` - The factory for building node ids
  `startPort` - The port to start creating nodes on

Method Detail

### getRoutes

    public SourceRoute[] getRoutes(NodeHandle handle)
                            throws java.io.IOException

  This method returns the routes a remote node is using

  Parameters:
    `handle` - The node to connect to
  Returns:
    The leafset of the remote node
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

### getLeafSet

    public LeafSet getLeafSet(NodeHandle handle)
                       throws java.io.IOException

  This method returns the remote leafset of the provided handle to the caller, in a protocol-dependent fashion. Note that this method may block while sending the message across the wire.

  Specified by:
    `getLeafSet` in class `PastryNodeFactory`
  Parameters:
    `handle` - The node to connect to
  Returns:
    The leafset of the remote node
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

### getRouteRow

    public RouteSet[] getRouteRow(NodeHandle handle,
                                  int row)
                           throws java.io.IOException

  This method returns the remote route row of the provided handle to the caller, in a protocol-dependent fashion. Note that this method may block while sending the message across the wire.

  Specified by:
    `getRouteRow` in class `PastryNodeFactory`
  Parameters:
    `handle` - The node to connect to
    `row` - The row number to retrieve
  Returns:
    The route row of the remote node
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

### getProximity

    public int getProximity(NodeHandle local,
                            NodeHandle handle)

  This method determines and returns the proximity of the current local node the provided NodeHandle. This will need to be done in a protocol- dependent fashion and may need to be done in a special way.

  Specified by:
    `getProximity` in class `PastryNodeFactory`
  Parameters:
    `handle` - The handle to determine the proximity of
    `local` - DESCRIBE THE PARAMETER
  Returns:
    The proximity of the provided handle

### getResponse

    protected Message getResponse(java.net.InetSocketAddress address,
                                  Message message)
                           throws java.io.IOException

  This method anonymously sends the given message to the remote address, blocks until a response is received, and then closes the socket and returns the response.

  Parameters:
    `address` - The address to send to
    `message` - The message to send
  Returns:
    The response
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

### generateNodeHandle

    public NodeHandle generateNodeHandle(java.net.InetSocketAddress address)

  Method which contructs a node handle (using the socket protocol) for the node at address NodeHandle.

  Specified by:
    `generateNodeHandle` in class `DistPastryNodeFactory`
  Parameters:
    `address` - The address of the remote node.
  Returns:
    A NodeHandle cooresponding to that address

### newNode

    public PastryNode newNode(NodeHandle bootstrap)

  Method which creates a Pastry node from the next port with a randomly generated NodeId.

  Specified by:
    `newNode` in class `DistPastryNodeFactory`
  Parameters:
    `bootstrap` - Node handle to bootstrap from.
  Returns:
    A node with a random ID and next port number.

### newNode

    public PastryNode newNode(NodeHandle bootstrap,
                              NodeId nodeId)

  Method which creates a Pastry node from the next port with a randomly generated NodeId.

  Specified by:
    `newNode` in class `DistPastryNodeFactory`
  Parameters:
    `bootstrap` - Node handle to bootstrap from.
    `nodeId` - DESCRIBE THE PARAMETER
  Returns:
    A node with a random ID and next port number.

### newNode

    public PastryNode newNode(NodeHandle bootstrap,
                              java.net.InetSocketAddress proxy)

  Method which creates a Pastry node from the next port with a randomly generated NodeId.

  Specified by:
    `newNode` in class `DistPastryNodeFactory`
  Parameters:
    `bootstrap` - Node handle to bootstrap from.
    `proxy` - DESCRIBE THE PARAMETER
  Returns:
    A node with a random ID and next port number.

### newNode

    public PastryNode newNode(NodeHandle bootstrap,
                              NodeId nodeId,
                              java.net.InetSocketAddress pAddress)

  Method which creates a Pastry node from the next port with a randomly generated NodeId.

  Specified by:
    `newNode` in class `DistPastryNodeFactory`
  Parameters:
    `bootstrap` - Node handle to bootstrap from.
    `nodeId` - DESCRIBE THE PARAMETER
    `pAddress` - DESCRIBE THE PARAMETER
  Returns:
    A node with a random ID and next port number.

### verifyConnection

    public static java.net.InetSocketAddress verifyConnection(int timeout,
                                                              java.net.InetSocketAddress local,
                                                              java.net.InetSocketAddress[] existing)
                                                       throws java.io.IOException

  Method which can be used to test the connectivity contstrains of the local node. This (optional) method is designed to be called by applications to ensure that the local node is able to connect through the network - checks can be done to check TCP/UDP connectivity, firewall setup, etc... If the method works, then nothing should be done and the method should return. If an error condition is detected, an exception should be thrown.

  Parameters:
    `timeout` - DESCRIBE THE PARAMETER
    `local` - DESCRIBE THE PARAMETER
    `existing` - DESCRIBE THE PARAMETER
  Returns:
    DESCRIBE THE RETURN VALUE
  Throws:
    `java.io.IOException` - DESCRIBE THE EXCEPTION

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.