Rice Pastry API

rice.pastry.socket
Class SocketSourceRouteManager.AddressManager

java.lang.Object
  extended byrice.pastry.socket.SocketSourceRouteManager.AddressManager
Enclosing class:
SocketSourceRouteManager

protected class SocketSourceRouteManager.AddressManager
extends java.lang.Object

Internal class which is tasked with maintaining the status of a single remote address. This class is in charge of all source routes to that address, as well as declaring liveness/death of this address

Version:
$Id: pretty.settings 2305 2005-03-11 20:22:33Z jeffh $
Author:
jeffh

Nested Class Summary
 class SocketSourceRouteManager.AddressManager.SourceRouteManager
          Internal class which is charges with managing the remote connection via a specific route
 
Field Summary
protected  SocketNodeHandle address
          DESCRIBE THE FIELD
protected  SourceRoute best
          the current best route to this remote address if best == null, we are already in a CheckDead, which means we are searching for a path
protected  int liveness
          DESCRIBE THE FIELD
protected  java.util.LinkedList pendingAppSockets
          DESCRIBE THE FIELD
protected  java.util.LinkedList queue
          the queue of messages waiting for a route of SocketBuffer
protected  java.util.HashMap routes
          DESCRIBE THE FIELD
protected  long updated
          DESCRIBE THE FIELD
 
Constructor Summary
SocketSourceRouteManager.AddressManager(SocketNodeHandle address, boolean search)
          Constructor, given an address and whether or not it should attempt to find the best route
 
Method Summary
 void checkLiveness()
          Method which suggests a ping to the remote node.
 void connect(int appAddress, AppSocketReceiver receiver, int timeout)
          Method which opens an app socket to this address
 int getLiveness()
          Method which returns the last cached liveness value for the given address.
protected  SocketSourceRouteManager.AddressManager.SourceRouteManager getRouteManager(SourceRoute route)
          Method which returns the route manager for the given route
protected  void markAlive(SourceRoute route)
          This method should be called when a known route is declared alive.
protected  void markDead(SourceRoute route)
          This method should be called when a known route is declared dead.
protected  void markDeadForever()
          This method should be called when a known node is declared dead - this is ONLY called when a new epoch of that node is detected.
protected  void markProximity(SourceRoute route, int proximity)
          This method should be called when a known route has its proximity updated
protected  void markSuspected(SourceRoute route)
          This method should be called when a known route is declared suspected.
 void ping()
          Method which suggests a ping to the remote node.
 int proximity()
          Method which returns the last cached proximity value for the given address.
protected  void purgeQueue()
          DESCRIBE THE METHOD
 void send(SocketBuffer message)
          Method which enqueues a message to this address
protected  void setAlive()
          Internal method which marks this address as being alive.
protected  void setDead()
          Internal method which marks this address as being dead.
protected  void setDeadForever()
          Internal method which marks this address as being dead.
protected  void setSuspected()
          Internal method which marks this address as being suspected.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

address

protected SocketNodeHandle address
DESCRIBE THE FIELD


best

protected SourceRoute best
the current best route to this remote address if best == null, we are already in a CheckDead, which means we are searching for a path


queue

protected java.util.LinkedList queue
the queue of messages waiting for a route of SocketBuffer


pendingAppSockets

protected java.util.LinkedList pendingAppSockets
DESCRIBE THE FIELD


routes

protected java.util.HashMap routes
DESCRIBE THE FIELD


liveness

protected int liveness
DESCRIBE THE FIELD


updated

protected long updated
DESCRIBE THE FIELD

Constructor Detail

SocketSourceRouteManager.AddressManager

public SocketSourceRouteManager.AddressManager(SocketNodeHandle address,
                                               boolean search)
Constructor, given an address and whether or not it should attempt to find the best route

Parameters:
address - The address
search - Whether or not the manager should try and find a route
Method Detail

getRouteManager

protected SocketSourceRouteManager.AddressManager.SourceRouteManager getRouteManager(SourceRoute route)
Method which returns the route manager for the given route

Parameters:
route - The route
Returns:
THe manager
Throws:
java.lang.IllegalArgumentException - if route is null

getLiveness

public int getLiveness()
Method which returns the last cached liveness value for the given address. If there is no cached value, then true is returned.

Returns:
The Alive value

setAlive

protected void setAlive()
Internal method which marks this address as being alive. If we were dead before, it sends an update out to the observers. best must be non-null

Throws:
java.lang.IllegalStateException - if best is null.

setSuspected

protected void setSuspected()
Internal method which marks this address as being suspected.


setDead

protected void setDead()
Internal method which marks this address as being dead. If we were alive or suspected before, it sends an update out to the observers.


setDeadForever

protected void setDeadForever()
Internal method which marks this address as being dead. If we were alive or suspected before, it sends an update out to the observers.


proximity

public int proximity()
Method which returns the last cached proximity value for the given address. If there is no cached value, then DEFAULT_PROXIMITY is returned.

Returns:
The ping value to the remote address

markAlive

protected void markAlive(SourceRoute route)
This method should be called when a known route is declared alive.

Parameters:
route - The now-live route

markSuspected

protected void markSuspected(SourceRoute route)
This method should be called when a known route is declared suspected.

Parameters:
route - The now-suspected route

markDead

protected void markDead(SourceRoute route)
This method should be called when a known route is declared dead.

Parameters:
route - The now-dead route

markDeadForever

protected void markDeadForever()
This method should be called when a known node is declared dead - this is ONLY called when a new epoch of that node is detected. Note that this method is silent - no checks are done. Caveat emptor.


markProximity

protected void markProximity(SourceRoute route,
                             int proximity)
This method should be called when a known route has its proximity updated

Parameters:
route - The route
proximity - The proximity

send

public void send(SocketBuffer message)
Method which enqueues a message to this address

Parameters:
message - The message to send

connect

public void connect(int appAddress,
                    AppSocketReceiver receiver,
                    int timeout)
Method which opens an app socket to this address

Parameters:
appAddress - DESCRIBE THE PARAMETER
receiver - DESCRIBE THE PARAMETER
timeout - DESCRIBE THE PARAMETER

ping

public void ping()
Method which suggests a ping to the remote node.


checkLiveness

public void checkLiveness()
Method which suggests a ping to the remote node.


purgeQueue

protected void purgeQueue()
DESCRIBE THE METHOD


Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection