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, CallbackFactory, 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
static byte NETWORK_INFO_NODE_HANDLE_INDEX
           
protected  NodeIdFactory nidFactory
           
static java.lang.String NODE_HANDLE_FACTORY
           
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  BindStrategy<TransportLayerNodeHandle<MultiInetSocketAddress>,SourceRoute<MultiInetSocketAddress>> getBindStrategy()
           
protected  Bootstrapper getBootstrapper(PastryNode pn, NodeHandleAdapter tl, NodeHandleFactory handleFactory, ProximityNeighborSelector pns)
           
 TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getBottomLayers(PastryNode 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, PastryNode pn, TLDeserializer deserializer)
           
protected  IdentityImpl<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,java.nio.ByteBuffer,SourceRoute<MultiInetSocketAddress>> getIdentityImpl(PastryNode pn, SocketNodeHandleFactory handleFactory)
           
protected  IdentitySerializer<TransportLayerNodeHandle<MultiInetSocketAddress>,MultiInetSocketAddress,SourceRoute<MultiInetSocketAddress>> getIdentiySerializer(PastryNode pn, SocketNodeHandleFactory handleFactory)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getIpServiceTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl, PastryNode pn)
           
protected  TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getLimitSocketsTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl, PastryNode pn)
           
protected  SocketPastryNodeFactory.TransLiveness<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLivenessTransportLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> tl, PastryNode pn)
           
 NodeHandle getLocalHandle(PastryNode pn, NodeHandleFactory nhf)
           
protected  TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLowerIdentityLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> srl, PastryNode 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, PastryNode pn)
           
protected  MultiAddressSourceRouteFactory getMultiAddressSourceRouteFactory(PastryNode pn)
           
protected  TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> getMultiAddressSourceRouteTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> mntl, PastryNode pn, MultiInetSocketAddress localAddress)
           
protected  NextHopStrategy<MultiInetSocketAddress> getNextHopStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl, LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider, Pinger<SourceRoute<MultiInetSocketAddress>> pinger, PastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
 java.net.InetSocketAddress getNextInetSocketAddress()
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap)
           
 void getNodeHandle(java.net.InetSocketAddress[] bootstraps, Continuation<NodeHandle,java.lang.Exception> c)
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress[] bootstraps, int int1)
           
 NodeHandle getNodeHandle(java.net.InetSocketAddress bootstrap, int i)
           
 NodeHandleAdapter getNodeHandleAdapter(PastryNode pn, NodeHandleFactory handleFactory2, TLDeserializer deserializer)
           
 NodeHandleFactory getNodeHandleFactory(PastryNode pn)
           
protected  OptionsAdder getOptionsAdder(PastryNode pn)
           
protected  PriorityTransportLayer<MultiInetSocketAddress> getPriorityTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> trans, LivenessProvider<MultiInetSocketAddress> liveness, ProximityProvider<MultiInetSocketAddress> prox, PastryNode pn)
           
protected  ProbeStrategy getProbeStrategy(PastryNode pn)
           
protected  SocketCountListener<java.net.InetSocketAddress> getSocketCountListener(PastryNode pn)
           
protected  SourceRouteForwardStrategy<MultiInetSocketAddress> getSourceRouteForwardStrategy(PastryNode 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, PastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
protected  SourceRouteStrategy<MultiInetSocketAddress> getSourceRouteStrategy(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> ltl, LivenessProvider<SourceRoute<MultiInetSocketAddress>> livenessProvider, Pinger<SourceRoute<MultiInetSocketAddress>> pinger, PastryNode pn, MultiInetSocketAddress proxyAddress, MultiAddressSourceRouteFactory esrFactory)
           
protected  TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getSourceRouteTransportLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> etl, PastryNode pn, MultiAddressSourceRouteFactory esrFactory)
           
protected  SocketPastryNodeFactory.TransLivenessProximity<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> getUpperIdentityLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> priorityTL, PastryNode 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, PastryNode 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(PastryNode 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

NODE_HANDLE_FACTORY

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

NETWORK_INFO_NODE_HANDLE_INDEX

public static final byte NETWORK_INFO_NODE_HANDLE_INDEX
See Also:
Constant Field Values
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(PastryNode pn,
                            LeafSet leafSet,
                            RoutingTable routeTable,
                            NodeHandleAdapter nha,
                            NodeHandleFactory handleFactory)
Overrides:
registerApps in class TransportPastryNodeFactory

getProbeStrategy

protected ProbeStrategy getProbeStrategy(PastryNode pn)

getLocalHandle

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

getNodeHandleFactory

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

getBottomLayers

public TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getBottomLayers(PastryNode 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(PastryNode pn,
                                              NodeHandleFactory handleFactory2,
                                              TLDeserializer deserializer)
                                       throws java.io.IOException
Specified by:
getNodeHandleAdapter in class TransportPastryNodeFactory
Throws:
java.io.IOException

getMultiAddressSourceRouteFactory

protected MultiAddressSourceRouteFactory getMultiAddressSourceRouteFactory(PastryNode pn)

getWireTransportLayer

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

getSocketCountListener

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

getMagicNumberTransportLayer

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

getLimitSocketsTransportLayer

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

getIpServiceTransportLayer

protected TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> getIpServiceTransportLayer(TransportLayer<java.net.InetSocketAddress,java.nio.ByteBuffer> wtl,
                                                                                                    PastryNode pn)
                                                                                             throws java.io.IOException
Throws:
java.io.IOException

getMultiAddressSourceRouteTransportLayer

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

getSourceRouteTransportLayer

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

getSourceRouteForwardStrategy

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

getIdentiySerializer

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

getIdentityImpl

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

getBindStrategy

protected BindStrategy<TransportLayerNodeHandle<MultiInetSocketAddress>,SourceRoute<MultiInetSocketAddress>> getBindStrategy()

getLowerIdentityLayer

protected TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> getLowerIdentityLayer(TransportLayer<SourceRoute<MultiInetSocketAddress>,java.nio.ByteBuffer> srl,
                                                                                                        PastryNode 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,
                                                                                                                                   PastryNode 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,
                                                                                                                                PastryNode 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,
                                                                             PastryNode 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,
                                                                     PastryNode 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,
                                                                                   PastryNode pn)

getUpperIdentityLayer

protected SocketPastryNodeFactory.TransLivenessProximity<TransportLayerNodeHandle<MultiInetSocketAddress>,java.nio.ByteBuffer> getUpperIdentityLayer(TransportLayer<MultiInetSocketAddress,java.nio.ByteBuffer> priorityTL,
                                                                                                                                                     PastryNode 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,
                                                                                                                 PastryNode pn,
                                                                                                                 TLDeserializer deserializer)

getOptionsAdder

protected OptionsAdder getOptionsAdder(PastryNode pn)

getBootstrapper

protected Bootstrapper getBootstrapper(PastryNode 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<NodeHandle,java.lang.Exception> 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:
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.


Imprint-Dataprotection