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,v 1.3 2005/03/11 20:22:33 jeffh Exp $
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  EpochInetSocketAddress address
          DESCRIBE THE FIELD
protected  SourceRoute best
          DESCRIBE THE FIELD
protected  int liveness
          DESCRIBE THE FIELD
protected  java.util.Vector queue
          DESCRIBE THE FIELD
protected  java.util.HashMap routes
          DESCRIBE THE FIELD
protected  long updated
          DESCRIBE THE FIELD
 
Constructor Summary
SocketSourceRouteManager.AddressManager(EpochInetSocketAddress 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.
 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.
 void send(Message 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 EpochInetSocketAddress address
DESCRIBE THE FIELD


best

protected SourceRoute best
DESCRIBE THE FIELD


queue

protected java.util.Vector queue
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(EpochInetSocketAddress 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

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.


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(Message message)
Method which enqueues a message to this address

Parameters:
message - The message to send

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.


Rice Pastry API

Copyright © 2001-2005 - Rice Pastry.


Imprint-Dataprotection