Rice Pastry API

rice.pastry.socket
Class SocketPastryNodeFactory

java.lang.Object
  extended by rice.pastry.PastryNodeFactory
      extended by rice.pastry.transport.TransportPastryNodeFactory
          extended by rice.pastry.socket.SocketPastryNodeFactory
Direct Known Subclasses:
AppSocketPastryNodeFactory, RendezvousSocketPastryNodeFactory

public class SocketPastryNodeFactory
extends TransportPastryNodeFactory

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

Nested Class Summary
 class SocketPastryNodeFactory.TLBootstrapper
           
protected static interface SocketPastryNodeFactory.TransLiveness<Identifier,MessageType>
           
protected static interface SocketPastryNodeFactory.TransLivenessProximity<Identifier,MessageType>
           
 
Field Summary
protected  int findFireWallPolicy
           
static java.lang.String IP_SERVICE
          Maps to a InetSocketAddressLookup
protected  java.net.InetAddress localAddress
           
static java.lang.String MULTI_ADDRESS_STRATEGY
           
static java.lang.String MULTI_INET_TL
          Maps to MultiInetAddressTransportLayer
protected  NodeIdFactory nidFactory
           
static byte[] PASTRY_MAGIC_NUMBER
           
static java.lang.String PRIORITY_TL
          maps to a PriorityTransportLayer
static java.lang.String PROXY_ADDRESS
          Maps to a MultiInetSocketAddress
protected  int testFireWallPolicy
           
 
Fields inherited from class rice.pastry.transport.TransportPastryNodeFactory
leafSetMaintFreq, routeSetMaintFreq
 
Fields inherited from class rice.pastry.PastryNodeFactory
environment, logger, lSetSize, rtBase, rtMax
 
Constructor Summary
SocketPastryNodeFactory(NodeIdFactory nf, java.net.InetAddress bindAddress, int startPort, Environment env)
           
SocketPastryNodeFactory(NodeIdFactory nf, int startPort, Environment env)
           
 
Method Summary
protected  Environment cloneEnvironment(Environment rootEnvironment, Id nodeId)
           
protected  LogManager cloneLogManager(Environment rootEnvironment, Id nodeId)
           
protected  Processor cloneProcessor(Environment rootEnvironment, Id nodeId, LogManager lman)
           
protected  RandomSource cloneRandomSource(Environment rootEnvironment, Id nodeId, LogManager lman)
           
protected  SelectorManager cloneSelectorManager(Environment rootEnvironment, Id nodeId, LogManager lman)
           
 java.net.InetAddress getBindAddress()
           
protected  Bootstrapper getBootstrapper(TLPastryNode pn, NodeHandleAdapter tl, NodeHandleFactory handleFactory, ProximityNeighborSelector pns)
           
 TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getBottomLayers(TLPastryNode pn, MultiInetSocketAddress proxyAddress)
          This is split off so we can get the IpServiceLayer easily.
protected  TransportLayer<TransportLayerNodeHandle<MultiInetSocketAddress>,RawMessage> getCommonAPITransportLayer(TransportLayer<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> upperIdentity, TLPastryNode pn, TLDeserializer deserializer)
           
protected  IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> getIdentityImpl(TLPastryNode pn, SocketNodeHandleFactory handleFactory)
           
protected  IdentitySerializer<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,SourceRoute<MultiInetSocketAddress>> getIdentiySerializer(TLPastryNode pn, SocketNodeHandleFactory handleFactory)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getIpServiceTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl, TLPastryNode pn)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getLimitSocketsTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl, TLPastryNode pn)
           
protected  SocketPastryNodeFactory.TransLiveness<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLivenessTransportLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> tl, TLPastryNode pn)
           
 NodeHandle getLocalHandle(TLPastryNode pn, NodeHandleFactory nhf)
           
protected  TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLowerIdentityLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> srl, TLPastryNode pn, IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> identity)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getMagicNumberTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl, TLPastryNode pn)
           
protected  MultiAddressSourceRouteFactory getMultiAddressSourceRouteFactory(TLPastryNode pn)
           
protected  TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> getMultiAddressSourceRouteTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl, TLPastryNode pn, MultiInetSocketAddress localAddress)
           
protected  NextHopStrategy<MultiInetSocketAddress> getNextHopStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl, LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider, Pinger<SourceRoute<MultiInetSocketAddress>> pinger, TLPastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
 java.net.InetSocketAddress getNextInetSocketAddress()
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap)
           
 void getNodeHandle(java.net.InetSocketAddress[] bootstraps, Continuation c)
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress[] bootstraps, int int1)
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap, int i)
           
 NodeHandleAdapter getNodeHandleAdapter(TLPastryNode pn, NodeHandleFactory handleFactory2, TLDeserializer deserializer)
           
 NodeHandleFactory getNodeHandleFactory(TLPastryNode pn)
           
protected  PriorityTransportLayer<MultiInetSocketAddress> getPriorityTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> trans, LivenessProvider<MultiInetSocketAddress> liveness, ProximityProvider<MultiInetSocketAddress> prox, TLPastryNode pn)
           
protected  ProbeStrategy getProbeStrategy(TLPastryNode pn)
           
protected  SocketCountListener<java.net.InetSocketAddress> getSocketCountListener(TLPastryNode pn)
           
protected  SourceRouteForwardStrategy<MultiInetSocketAddress> getSourceRouteForwardStrategy(TLPastryNode pn, MultiAddressSourceRouteFactory esrFactory)
           
protected  SocketPastryNodeFactory.TransLivenessProximity<MultiInetSocketAddress,java.nio.ByteBuffer> getSourceRouteManagerLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl, LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider, Pinger<SourceRoute<MultiInetSocketAddress>> pinger, TLPastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
protected  SourceRouteStrategy<MultiInetSocketAddress> getSourceRouteStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl, LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider, Pinger<SourceRoute<MultiInetSocketAddress>> pinger, TLPastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
protected  TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getSourceRouteTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> etl, TLPastryNode pn, MultiAddressSourceRouteFactory esrFactory)
           
protected  SocketPastryNodeFactory.TransLivenessProximity<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> getUpperIdentityLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> priorityTL, TLPastryNode pn, IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> identity, LivenessProvider<MultiInetSocketAddress> live, ProximityProvider<MultiInetSocketAddress> prox, OverrideLiveness<SourceRoute<MultiInetSocketAddress>> overrideLiveness)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getWireTransportLayer(java.net.InetSocketAddress innermostAddress, TLPastryNode pn)
           
 PastryNode newNode()
          Need to boot manually.
 PastryNode newNode(Id id)
           
 PastryNode newNode(Id nodeId, java.net.InetSocketAddress pAddress)
          This method uses the pAddress as the outer address if it's non-null.
 PastryNode newNode(Id nodeId, MultiInetSocketAddress pAddress)
          Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)
 PastryNode newNode(java.net.InetSocketAddress proxyAddress)
           
 PastryNode newNode(NodeHandle bootstrap)
          Method which creates a Pastry node from the next port with a randomly generated NodeId.
 PastryNode newNode(NodeHandle bootstrap, Id nodeId)
          Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)
 PastryNode newNode(NodeHandle nodeHandle, Id id, java.net.InetSocketAddress proxyAddress)
          Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)
 PastryNode newNode(NodeHandle bootstrap, java.net.InetSocketAddress proxy)
          Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)
protected  void newNodeSelector(Id nodeId, MultiInetSocketAddress proxyAddress, Continuation<PastryNode,java.io.IOException> deliverResultToMe, java.util.Map<java.lang.String,java.lang.Object> initialVars)
          Only call this on the selector thread.
protected  void registerApps(TLPastryNode pn, LeafSet leafSet, RoutingTable routeTable, NodeHandleAdapter nha, NodeHandleFactory handleFactory)
           
static java.net.InetSocketAddress verifyConnection(int i, java.net.InetSocketAddress addr, java.net.InetSocketAddress[] addr2, Environment env, Logger l)
           
 
Methods inherited from class rice.pastry.transport.TransportPastryNodeFactory
getJoinProtocol, getLeafSetProtocol, getProximityNeighborSelector, getRouterStrategy, getRouteSetProtocol, getTLDeserializer, nodeHandleHelper
 
Methods inherited from class rice.pastry.PastryNodeFactory
getEnvironment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PROXY_ADDRESS

public static final java.lang.String PROXY_ADDRESS
Maps to a MultiInetSocketAddress

See Also:
Constant Field Values

IP_SERVICE

public static final java.lang.String IP_SERVICE
Maps to a InetSocketAddressLookup

See Also:
Constant Field Values

MULTI_INET_TL

public static final java.lang.String MULTI_INET_TL
Maps to MultiInetAddressTransportLayer

See Also:
Constant Field Values

PRIORITY_TL

public static final java.lang.String PRIORITY_TL
maps to a PriorityTransportLayer

See Also:
Constant Field Values

MULTI_ADDRESS_STRATEGY

public static final java.lang.String MULTI_ADDRESS_STRATEGY
See Also:
Constant Field Values

PASTRY_MAGIC_NUMBER

public static final byte[] PASTRY_MAGIC_NUMBER

nidFactory

protected NodeIdFactory nidFactory

localAddress

protected java.net.InetAddress localAddress

testFireWallPolicy

protected int testFireWallPolicy

findFireWallPolicy

protected int findFireWallPolicy
Constructor Detail

SocketPastryNodeFactory

public SocketPastryNodeFactory(NodeIdFactory nf,
                               int startPort,
                               Environment env)
                        throws java.io.IOException
Throws:
java.io.IOException

SocketPastryNodeFactory

public SocketPastryNodeFactory(NodeIdFactory nf,
                               java.net.InetAddress bindAddress,
                               int startPort,
                               Environment env)
                        throws java.io.IOException
Throws:
java.io.IOException
Method Detail

getBindAddress

public java.net.InetAddress getBindAddress()

getNextInetSocketAddress

public java.net.InetSocketAddress getNextInetSocketAddress()

registerApps

protected void registerApps(TLPastryNode pn,
                            LeafSet leafSet,
                            RoutingTable routeTable,
                            NodeHandleAdapter nha,
                            NodeHandleFactory handleFactory)
Overrides:
registerApps in class TransportPastryNodeFactory

getProbeStrategy

protected ProbeStrategy getProbeStrategy(TLPastryNode pn)

getLocalHandle

public NodeHandle getLocalHandle(TLPastryNode pn,
                                 NodeHandleFactory nhf)
Specified by:
getLocalHandle in class TransportPastryNodeFactory

getNodeHandleFactory

public NodeHandleFactory getNodeHandleFactory(TLPastryNode pn)
Specified by:
getNodeHandleFactory in class TransportPastryNodeFactory

getBottomLayers

public TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getBottomLayers(TLPastryNode pn,
                                                                                      MultiInetSocketAddress proxyAddress)
                                                                               throws java.io.IOException
This is split off so we can get the IpServiceLayer easily.

Returns:
Throws:
java.io.IOException

getNodeHandleAdapter

public NodeHandleAdapter getNodeHandleAdapter(TLPastryNode pn,
                                              NodeHandleFactory handleFactory2,
                                              TLDeserializer deserializer)
                                       throws java.io.IOException
Specified by:
getNodeHandleAdapter in class TransportPastryNodeFactory
Throws:
java.io.IOException

getMultiAddressSourceRouteFactory

protected MultiAddressSourceRouteFactory getMultiAddressSourceRouteFactory(TLPastryNode pn)

getWireTransportLayer

protected TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getWireTransportLayer(java.net.InetSocketAddress innermostAddress,
                                                                                               TLPastryNode pn)
                                                                                        throws java.io.IOException
Throws:
java.io.IOException

getSocketCountListener

protected SocketCountListener<java.net.InetSocketAddress> getSocketCountListener(TLPastryNode pn)

getMagicNumberTransportLayer

protected TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getMagicNumberTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl,
                                                                                                      TLPastryNode pn)

getLimitSocketsTransportLayer

protected TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getLimitSocketsTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl,
                                                                                                       TLPastryNode pn)

getIpServiceTransportLayer

protected TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getIpServiceTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl,
                                                                                                    TLPastryNode pn)

getMultiAddressSourceRouteTransportLayer

protected TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> getMultiAddressSourceRouteTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl,
                                                                                                              TLPastryNode pn,
                                                                                                              MultiInetSocketAddress localAddress)

getSourceRouteTransportLayer

protected TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getSourceRouteTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> etl,
                                                                                                               TLPastryNode pn,
                                                                                                               MultiAddressSourceRouteFactory esrFactory)

getSourceRouteForwardStrategy

protected SourceRouteForwardStrategy<MultiInetSocketAddress> getSourceRouteForwardStrategy(TLPastryNode pn,
                                                                                           MultiAddressSourceRouteFactory esrFactory)

getIdentiySerializer

protected IdentitySerializer<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,SourceRoute<MultiInetSocketAddress>> getIdentiySerializer(TLPastryNode pn,
                                                                                                                                                               SocketNodeHandleFactory handleFactory)

getIdentityImpl

protected IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> getIdentityImpl(TLPastryNode pn,
                                                                                                                                                                        SocketNodeHandleFactory handleFactory)
                                                                                                                                                                 throws java.io.IOException
Throws:
java.io.IOException

getLowerIdentityLayer

protected TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLowerIdentityLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> srl,
                                                                                                        TLPastryNode pn,
                                                                                                        IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> identity)

getLivenessTransportLayer

protected SocketPastryNodeFactory.TransLiveness<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLivenessTransportLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> tl,
                                                                                                                                   TLPastryNode pn)

getSourceRouteManagerLayer

protected SocketPastryNodeFactory.TransLivenessProximity<MultiInetSocketAddress,java.nio.ByteBuffer> getSourceRouteManagerLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl,
                                                                                                                                LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider,
                                                                                                                                Pinger<SourceRoute<MultiInetSocketAddress>> pinger,
                                                                                                                                TLPastryNode pn,
                                                                                                                                MultiInetSocketAddress proxyAddress,
                                                                                                                                MultiAddressSourceRouteFactory esrFactory)
                                                                                                                         throws java.io.IOException
Throws:
java.io.IOException

getSourceRouteStrategy

protected SourceRouteStrategy<MultiInetSocketAddress> getSourceRouteStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl,
                                                                             LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider,
                                                                             Pinger<SourceRoute<MultiInetSocketAddress>> pinger,
                                                                             TLPastryNode pn,
                                                                             MultiInetSocketAddress proxyAddress,
                                                                             MultiAddressSourceRouteFactory esrFactory)
                                                                      throws java.io.IOException
Throws:
java.io.IOException

getNextHopStrategy

protected NextHopStrategy<MultiInetSocketAddress> getNextHopStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl,
                                                                     LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider,
                                                                     Pinger<SourceRoute<MultiInetSocketAddress>> pinger,
                                                                     TLPastryNode pn,
                                                                     MultiInetSocketAddress proxyAddress,
                                                                     MultiAddressSourceRouteFactory esrFactory)
                                                              throws java.io.IOException
Throws:
java.io.IOException

getPriorityTransportLayer

protected PriorityTransportLayer<MultiInetSocketAddress> getPriorityTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> trans,
                                                                                   LivenessProvider<MultiInetSocketAddress> liveness,
                                                                                   ProximityProvider<MultiInetSocketAddress> prox,
                                                                                   TLPastryNode pn)

getUpperIdentityLayer

protected SocketPastryNodeFactory.TransLivenessProximity<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> getUpperIdentityLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> priorityTL,
                                                                                                                                                     TLPastryNode pn,
                                                                                                                                                     IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> identity,
                                                                                                                                                     LivenessProvider<MultiInetSocketAddress> live,
                                                                                                                                                     ProximityProvider<MultiInetSocketAddress> prox,
                                                                                                                                                     OverrideLiveness<SourceRoute<MultiInetSocketAddress>> overrideLiveness)

getCommonAPITransportLayer

protected TransportLayer<TransportLayerNodeHandle<MultiInetSocketAddress>,RawMessage> getCommonAPITransportLayer(TransportLayer<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> upperIdentity,
                                                                                                                 TLPastryNode pn,
                                                                                                                 TLDeserializer deserializer)

getBootstrapper

protected Bootstrapper getBootstrapper(TLPastryNode pn,
                                       NodeHandleAdapter tl,
                                       NodeHandleFactory handleFactory,
                                       ProximityNeighborSelector pns)
Specified by:
getBootstrapper in class TransportPastryNodeFactory

getNodeHandle

public NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap,
                                int i)

getNodeHandle

public NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap)

getNodeHandle

public void getNodeHandle(java.net.InetSocketAddress[] bootstraps,
                          Continuation c)

getNodeHandle

public NodeHandle getNodeHandle(java.net.InetSocketAddress[] bootstraps,
                                int int1)

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 PastryNodeFactory
Parameters:
bootstrap - Node handle to bootstrap from.
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 the specified nodeId (or one generated from the NodeIdFactory if not specified)

Parameters:
bootstrap - Node handle to bootstrap from.
Returns:
A node with a random ID and next port number.

newNode

public PastryNode newNode(NodeHandle bootstrap,
                          Id nodeId)
Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)

Specified by:
newNode in class PastryNodeFactory
Parameters:
bootstrap - Node handle to bootstrap from.
nodeId - if non-null, will use this nodeId for the node, rather than using the NodeIdFactory
Returns:
A node with a random ID and next port number.

newNode

public PastryNode newNode()
Need to boot manually. n.getBootstrapper().boot(addresses);

Specified by:
newNode in class PastryNodeFactory
Returns:

newNode

public PastryNode newNode(Id id)
Specified by:
newNode in class PastryNodeFactory

newNode

public PastryNode newNode(java.net.InetSocketAddress proxyAddress)

newNode

public PastryNode newNode(NodeHandle nodeHandle,
                          Id id,
                          java.net.InetSocketAddress proxyAddress)
Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)

Parameters:
pilot - Node handle to bootstrap from.
nodeId - if non-null, will use this nodeId for the node, rather than using the NodeIdFactory
Returns:
A node with a random ID and next port number.

newNode

public PastryNode newNode(Id nodeId,
                          java.net.InetSocketAddress pAddress)
This method uses the pAddress as the outer address if it's non-null. It automatically generates the internal address from the localAddress, and increments the port as necessary.

Parameters:
nodeId -
pAddress -
Returns:

newNode

public PastryNode newNode(Id nodeId,
                          MultiInetSocketAddress pAddress)
                   throws java.io.IOException
Method which creates a Pastry node from the next port with the specified nodeId (or one generated from the NodeIdFactory if not specified)

Parameters:
pilot - Node handle to bootstrap from.
nodeId - if non-null, will use this nodeId for the node, rather than using the NodeIdFactory
pAddress - The address to claim that this node is at - used for proxies behind NATs
Returns:
A node with a random ID and next port number.
Throws:
java.io.IOException

newNodeSelector

protected void newNodeSelector(Id nodeId,
                               MultiInetSocketAddress proxyAddress,
                               Continuation<PastryNode,java.io.IOException> deliverResultToMe,
                               java.util.Map<java.lang.String,java.lang.Object> initialVars)
Only call this on the selector thread.

Parameters:
nodeId -
pAddress -

cloneEnvironment

protected Environment cloneEnvironment(Environment rootEnvironment,
                                       Id nodeId)

cloneLogManager

protected LogManager cloneLogManager(Environment rootEnvironment,
                                     Id nodeId)

cloneSelectorManager

protected SelectorManager cloneSelectorManager(Environment rootEnvironment,
                                               Id nodeId,
                                               LogManager lman)

cloneProcessor

protected Processor cloneProcessor(Environment rootEnvironment,
                                   Id nodeId,
                                   LogManager lman)

cloneRandomSource

protected RandomSource cloneRandomSource(Environment rootEnvironment,
                                         Id nodeId,
                                         LogManager lman)

verifyConnection

public static java.net.InetSocketAddress verifyConnection(int i,
                                                          java.net.InetSocketAddress addr,
                                                          java.net.InetSocketAddress[] addr2,
                                                          Environment env,
                                                          Logger l)

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.