Rice Pastry API

org.mpisws.p2p.transport.identity
Class IdentityImpl<UpperIdentifier,MiddleIdentifier,UpperMsgType,LowerIdentifier>

java.lang.Object
  extended by org.mpisws.p2p.transport.identity.IdentityImpl<UpperIdentifier,MiddleIdentifier,UpperMsgType,LowerIdentifier>

public class IdentityImpl<UpperIdentifier,MiddleIdentifier,UpperMsgType,LowerIdentifier>
extends java.lang.Object


Field Summary
protected  java.util.Map<LowerIdentifier,UpperIdentifier> bindings
          Multiple UpperIdentifiers claim the same binding to the LowerIdentifier.
protected  java.util.Set<UpperIdentifier> deadForever
           
protected  Environment environment
           
static byte FAILURE
           
static byte INCORRECT_IDENTITY
           
protected  byte[] localIdentifier
           
protected  Logger logger
           
protected  org.mpisws.p2p.transport.identity.IdentityImpl.LowerIdentityImpl lower
           
static byte NO_ID
           
static java.lang.String NODE_HANDLE_FROM_INDEX
           
static java.lang.String NODE_HANDLE_TO_INDEX
           
protected  NodeChangeStrategy<UpperIdentifier,LowerIdentifier> nodeChangeStrategy
           
static byte NORMAL
           
protected  java.util.Map<UpperIdentifier,java.util.Set<org.mpisws.p2p.transport.identity.IdentityImpl.IdentityMessageHandle>> pendingMessages
           
protected  SanityChecker<UpperIdentifier,MiddleIdentifier> sanityChecker
           
protected  IdentitySerializer<UpperIdentifier,MiddleIdentifier,LowerIdentifier> serializer
           
static byte SUCCESS
           
protected  org.mpisws.p2p.transport.identity.IdentityImpl.UpperIdentityImpl upper
           
 
Constructor Summary
IdentityImpl(byte[] localIdentifier, IdentitySerializer<UpperIdentifier,MiddleIdentifier,LowerIdentifier> serializer, NodeChangeStrategy<UpperIdentifier,LowerIdentifier> nodeChangeStrategy, SanityChecker<UpperIdentifier,MiddleIdentifier> sanityChecker, Environment environment)
           
 
Method Summary
protected  boolean addBinding(UpperIdentifier u, LowerIdentifier l, java.util.Map<java.lang.String,java.lang.Integer> options)
           
protected  int addIntendedDest(UpperIdentifier i)
          Returns the identifier.
 void addPendingMessage(UpperIdentifier i, org.mpisws.p2p.transport.identity.IdentityImpl.IdentityMessageHandle ret)
           
 boolean destinationChanged(UpperIdentifier oldDest, UpperIdentifier newDest, LowerIdentifier i, java.util.Map<java.lang.String,java.lang.Integer> options)
          Return true if the new one is a valid replacement of the old True if they are the same
 LowerIdentity<LowerIdentifier,java.nio.ByteBuffer> getLowerIdentity()
           
 UpperIdentity<UpperIdentifier,UpperMsgType> getUpperIdentity()
           
 void initLowerLayer(TransportLayer<LowerIdentifier,java.nio.ByteBuffer> tl, ErrorHandler<LowerIdentifier> handler)
           
 void initUpperLayer(UpperIdentifier localIdentifier, TransportLayer<MiddleIdentifier,UpperMsgType> tl, LivenessProvider<MiddleIdentifier> live, ProximityProvider<MiddleIdentifier> prox)
           
 void setDeadForever(UpperIdentifier i, java.util.Map<java.lang.String,java.lang.Integer> options)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localIdentifier

protected byte[] localIdentifier

lower

protected org.mpisws.p2p.transport.identity.IdentityImpl.LowerIdentityImpl lower

upper

protected org.mpisws.p2p.transport.identity.IdentityImpl.UpperIdentityImpl upper

pendingMessages

protected java.util.Map<UpperIdentifier,java.util.Set<org.mpisws.p2p.transport.identity.IdentityImpl.IdentityMessageHandle>> pendingMessages

deadForever

protected java.util.Set<UpperIdentifier> deadForever

environment

protected Environment environment

logger

protected Logger logger

serializer

protected IdentitySerializer<UpperIdentifier,MiddleIdentifier,LowerIdentifier> serializer

nodeChangeStrategy

protected NodeChangeStrategy<UpperIdentifier,LowerIdentifier> nodeChangeStrategy

sanityChecker

protected SanityChecker<UpperIdentifier,MiddleIdentifier> sanityChecker

bindings

protected java.util.Map<LowerIdentifier,UpperIdentifier> bindings
Multiple UpperIdentifiers claim the same binding to the LowerIdentifier. If these are unrelated nodes (different ID/credentials) we need to make sure to expire the node first. If they are the same node, and just a new epoch, then we can exprie them right away. Note, that it's possible to have the UpperIdentifier in multiple places if it has multiple paths (such as source routing)


SUCCESS

public static final byte SUCCESS
See Also:
Constant Field Values

FAILURE

public static final byte FAILURE
See Also:
Constant Field Values

NO_ID

public static final byte NO_ID
See Also:
Constant Field Values

NORMAL

public static final byte NORMAL
See Also:
Constant Field Values

INCORRECT_IDENTITY

public static final byte INCORRECT_IDENTITY
See Also:
Constant Field Values

NODE_HANDLE_TO_INDEX

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

NODE_HANDLE_FROM_INDEX

public static final java.lang.String NODE_HANDLE_FROM_INDEX
See Also:
Constant Field Values
Constructor Detail

IdentityImpl

public IdentityImpl(byte[] localIdentifier,
                    IdentitySerializer<UpperIdentifier,MiddleIdentifier,LowerIdentifier> serializer,
                    NodeChangeStrategy<UpperIdentifier,LowerIdentifier> nodeChangeStrategy,
                    SanityChecker<UpperIdentifier,MiddleIdentifier> sanityChecker,
                    Environment environment)
Method Detail

addPendingMessage

public void addPendingMessage(UpperIdentifier i,
                              org.mpisws.p2p.transport.identity.IdentityImpl.IdentityMessageHandle ret)

setDeadForever

public void setDeadForever(UpperIdentifier i,
                           java.util.Map<java.lang.String,java.lang.Integer> options)

addIntendedDest

protected int addIntendedDest(UpperIdentifier i)
Returns the identifier.

Parameters:
i -
Returns:

addBinding

protected boolean addBinding(UpperIdentifier u,
                             LowerIdentifier l,
                             java.util.Map<java.lang.String,java.lang.Integer> options)

destinationChanged

public boolean destinationChanged(UpperIdentifier oldDest,
                                  UpperIdentifier newDest,
                                  LowerIdentifier i,
                                  java.util.Map<java.lang.String,java.lang.Integer> options)
Return true if the new one is a valid replacement of the old True if they are the same

Parameters:
oldDest -
newDest -
i -
Returns:

initLowerLayer

public void initLowerLayer(TransportLayer<LowerIdentifier,java.nio.ByteBuffer> tl,
                           ErrorHandler<LowerIdentifier> handler)

getLowerIdentity

public LowerIdentity<LowerIdentifier,java.nio.ByteBuffer> getLowerIdentity()

getUpperIdentity

public UpperIdentity<UpperIdentifier,UpperMsgType> getUpperIdentity()

initUpperLayer

public void initUpperLayer(UpperIdentifier localIdentifier,
                           TransportLayer<MiddleIdentifier,UpperMsgType> tl,
                           LivenessProvider<MiddleIdentifier> live,
                           ProximityProvider<MiddleIdentifier> prox)

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection