net.i2p.router
Class ClientManagerFacade

java.lang.Object
  extended by net.i2p.router.ClientManagerFacade
All Implemented Interfaces:
Service
Direct Known Subclasses:
ClientManagerFacadeImpl, DummyClientManagerFacade

public abstract class ClientManagerFacade
extends java.lang.Object
implements Service

Manage all interactions with clients

Author:
jrandom

Field Summary
static java.lang.String PROP_CLIENT_ONLY
           
 
Constructor Summary
ClientManagerFacade()
           
 
Method Summary
abstract  SessionConfig getClientSessionConfig(Destination dest)
          Return the client's current config, or null if not connected
abstract  SessionKeyManager getClientSessionKeyManager(Hash dest)
           
 boolean isAlive()
           
abstract  boolean isLocal(Destination dest)
          Determine if the destination specified is managed locally.
abstract  boolean isLocal(Hash destHash)
          Determine if the destination hash specified is managed locally.
 java.util.Set<Destination> listClients()
          Return the list of locally connected clients
abstract  void messageDeliveryStatusUpdate(Destination fromDest, MessageId id, boolean delivered)
           
abstract  void messageReceived(ClientMessage msg)
           
 void renderStatusHTML(java.io.Writer out)
           
abstract  void reportAbuse(Destination dest, java.lang.String reason, int severity)
          Instruct the client (or all clients) that they are under attack.
abstract  void requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob)
          Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.
abstract  void requestLeaseSet(Hash dest, LeaseSet set)
           
 boolean shouldPublishLeaseSet(Hash destinationHash)
          Does the client specified want their leaseSet published?
 boolean verifyClientLiveliness()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.i2p.router.Service
restart, shutdown, startup
 

Field Detail

PROP_CLIENT_ONLY

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

ClientManagerFacade

public ClientManagerFacade()
Method Detail

requestLeaseSet

public abstract void requestLeaseSet(Destination dest,
                                     LeaseSet set,
                                     long timeout,
                                     Job onCreateJob,
                                     Job onFailedJob)
Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up. If that doesn't occur within the timeout specified, queue up the onFailedJob. This call does not block.

Parameters:
dest - Destination from which the LeaseSet's authorization should be requested
set - LeaseSet with requested leases - this object must be updated to contain the signed version (as well as any changed/added/removed Leases)
timeout - ms to wait before failing
onCreateJob - Job to run after the LeaseSet is authorized
onFailedJob - Job to run after the timeout passes without receiving authorization

requestLeaseSet

public abstract void requestLeaseSet(Hash dest,
                                     LeaseSet set)

reportAbuse

public abstract void reportAbuse(Destination dest,
                                 java.lang.String reason,
                                 int severity)
Instruct the client (or all clients) that they are under attack. This call does not block.

Parameters:
dest - Destination under attack, or null if all destinations are affected
reason - Why the router thinks that there is abusive behavior
severity - How severe the abuse is, with 0 being not severe and 255 is the max

isLocal

public abstract boolean isLocal(Destination dest)
Determine if the destination specified is managed locally. This call DOES block.

Parameters:
dest - Destination to be checked

isLocal

public abstract boolean isLocal(Hash destHash)
Determine if the destination hash specified is managed locally. This call DOES block.

Parameters:
destHash - Hash of Destination to be checked

messageDeliveryStatusUpdate

public abstract void messageDeliveryStatusUpdate(Destination fromDest,
                                                 MessageId id,
                                                 boolean delivered)

messageReceived

public abstract void messageReceived(ClientMessage msg)

verifyClientLiveliness

public boolean verifyClientLiveliness()

isAlive

public boolean isAlive()

shouldPublishLeaseSet

public boolean shouldPublishLeaseSet(Hash destinationHash)
Does the client specified want their leaseSet published?


listClients

public java.util.Set<Destination> listClients()
Return the list of locally connected clients

Returns:
set of Destination objects

getClientSessionConfig

public abstract SessionConfig getClientSessionConfig(Destination dest)
Return the client's current config, or null if not connected


getClientSessionKeyManager

public abstract SessionKeyManager getClientSessionKeyManager(Hash dest)

renderStatusHTML

public void renderStatusHTML(java.io.Writer out)
                      throws java.io.IOException
Specified by:
renderStatusHTML in interface Service
Throws:
java.io.IOException