Rice Pastry API

rice.pastry.transport
Class NodeHandleAdapter

java.lang.Object
  extended by rice.pastry.transport.NodeHandleAdapter
All Implemented Interfaces:
LivenessProvider<NodeHandle>, ProximityProvider<NodeHandle>, TransportLayer<NodeHandle,RawMessage>, Destructable

public class NodeHandleAdapter
extends java.lang.Object
implements TransportLayer<NodeHandle,RawMessage>, LivenessProvider<NodeHandle>, ProximityProvider<NodeHandle>


Field Summary
 
Fields inherited from interface org.mpisws.p2p.transport.proximity.ProximityProvider
DEFAULT_PROXIMITY
 
Constructor Summary
NodeHandleAdapter(TransportLayer tl, LivenessProvider livenessProvider, ProximityProvider proxProvider)
           
 
Method Summary
 void acceptMessages(boolean b)
          Toggle accepting incoming messages.
 void acceptSockets(boolean b)
          Toggle accepting new sockets.
 void addLivenessListener(LivenessListener<NodeHandle> name)
           
 void addProximityListener(ProximityListener<NodeHandle> listener)
           
 boolean checkLiveness(NodeHandle i, java.util.Map<java.lang.String,java.lang.Integer> options)
          Returns wether a new notification will occur.
 void clearState(NodeHandle i)
          Force layer to clear the existing state related to the Identifier.
 void destroy()
           
 int getLiveness(NodeHandle i, java.util.Map<java.lang.String,java.lang.Integer> options)
           
 NodeHandle getLocalIdentifier()
          The local node.
 TransportLayer getTL()
           
 SocketRequestHandle<NodeHandle> openSocket(NodeHandle i, SocketCallback<NodeHandle> deliverSocketToMe, java.util.Map<java.lang.String,java.lang.Integer> options)
          Open a socket to the Identifier
 int proximity(NodeHandle i)
           
 boolean removeLivenessListener(LivenessListener<NodeHandle> name)
           
 boolean removeProximityListener(ProximityListener<NodeHandle> listener)
           
 MessageRequestHandle<NodeHandle,RawMessage> sendMessage(NodeHandle i, RawMessage m, MessageCallback<NodeHandle,RawMessage> deliverAckToMe, java.util.Map<java.lang.String,java.lang.Integer> options)
          Send the message to the identifier
 void setCallback(TransportLayerCallback<NodeHandle,RawMessage> callback)
          Set the callback for incoming sockets/messages
 void setErrorHandler(ErrorHandler<NodeHandle> handler)
          To be notified of problems not related to an outgoing messaage/socket.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NodeHandleAdapter

public NodeHandleAdapter(TransportLayer tl,
                         LivenessProvider livenessProvider,
                         ProximityProvider proxProvider)
Method Detail

acceptMessages

public void acceptMessages(boolean b)
Description copied from interface: TransportLayer
Toggle accepting incoming messages. Useful in flow control if overwhelmed by incoming sockets. Default: true

Specified by:
acceptMessages in interface TransportLayer<NodeHandle,RawMessage>

acceptSockets

public void acceptSockets(boolean b)
Description copied from interface: TransportLayer
Toggle accepting new sockets. Useful in flow control if overwhelmed by incoming sockets. Default: true

Specified by:
acceptSockets in interface TransportLayer<NodeHandle,RawMessage>

getLocalIdentifier

public NodeHandle getLocalIdentifier()
Description copied from interface: TransportLayer
The local node.

Specified by:
getLocalIdentifier in interface TransportLayer<NodeHandle,RawMessage>
Returns:
The local node.

openSocket

public SocketRequestHandle<NodeHandle> openSocket(NodeHandle i,
                                                  SocketCallback<NodeHandle> deliverSocketToMe,
                                                  java.util.Map<java.lang.String,java.lang.Integer> options)
Description copied from interface: TransportLayer
Open a socket to the Identifier

Specified by:
openSocket in interface TransportLayer<NodeHandle,RawMessage>
Parameters:
i - who to open the socket to
deliverSocketToMe - the callback when the socket is opened
options - options on how to open the socket (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
Returns:
an object to cancel opening the socket if it takes to long, or is no longer relevent

sendMessage

public MessageRequestHandle<NodeHandle,RawMessage> sendMessage(NodeHandle i,
                                                               RawMessage m,
                                                               MessageCallback<NodeHandle,RawMessage> deliverAckToMe,
                                                               java.util.Map<java.lang.String,java.lang.Integer> options)
Description copied from interface: TransportLayer
Send the message to the identifier

Specified by:
sendMessage in interface TransportLayer<NodeHandle,RawMessage>
Parameters:
i - the destination
m - the message
deliverAckToMe - layer dependent notification when the message is sent (can indicate placed on the wire, point-to-point acknowledgement, or end-to-end acknowledgement)
options - delivery options (don't source route, encrypt etc) (may not be respected if layer cannot provide service)
Returns:
ability to cancel the message if no longer relevent

setCallback

public void setCallback(TransportLayerCallback<NodeHandle,RawMessage> callback)
Description copied from interface: TransportLayer
Set the callback for incoming sockets/messages

Specified by:
setCallback in interface TransportLayer<NodeHandle,RawMessage>
Parameters:
callback - the callback for incoming sockets/messages

setErrorHandler

public void setErrorHandler(ErrorHandler<NodeHandle> handler)
Description copied from interface: TransportLayer
To be notified of problems not related to an outgoing messaage/socket. Or to be notified if a callback isn't provided.

Specified by:
setErrorHandler in interface TransportLayer<NodeHandle,RawMessage>
Parameters:
handler - to be notified of problems not related to a specific messaage/socket.

destroy

public void destroy()
Specified by:
destroy in interface Destructable

addLivenessListener

public void addLivenessListener(LivenessListener<NodeHandle> name)
Specified by:
addLivenessListener in interface LivenessProvider<NodeHandle>

checkLiveness

public boolean checkLiveness(NodeHandle i,
                             java.util.Map<java.lang.String,java.lang.Integer> options)
Description copied from interface: LivenessProvider
Returns wether a new notification will occur. Will return false if a liveness check has recently completed. Will return true if a new liveness check starts, or an existing one is in progress.

Specified by:
checkLiveness in interface LivenessProvider<NodeHandle>
Parameters:
i - the node to check
Returns:
true if there will be an update (either a ping, or a change in liveness) false if there won't be an update due to bandwidth concernts

getLiveness

public int getLiveness(NodeHandle i,
                       java.util.Map<java.lang.String,java.lang.Integer> options)
Specified by:
getLiveness in interface LivenessProvider<NodeHandle>

removeLivenessListener

public boolean removeLivenessListener(LivenessListener<NodeHandle> name)
Specified by:
removeLivenessListener in interface LivenessProvider<NodeHandle>

addProximityListener

public void addProximityListener(ProximityListener<NodeHandle> listener)
Specified by:
addProximityListener in interface ProximityProvider<NodeHandle>

proximity

public int proximity(NodeHandle i)
Specified by:
proximity in interface ProximityProvider<NodeHandle>

removeProximityListener

public boolean removeProximityListener(ProximityListener<NodeHandle> listener)
Specified by:
removeProximityListener in interface ProximityProvider<NodeHandle>

getTL

public TransportLayer getTL()

clearState

public void clearState(NodeHandle i)
Description copied from interface: LivenessProvider
Force layer to clear the existing state related to the Identifier. Usually if there is reason to believe a node has returned.

Specified by:
clearState in interface LivenessProvider<NodeHandle>

Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection