## net.i2p.router
Class ClientManagerFacade

    java.lang.Object
      net.i2p.router.ClientManagerFacade

All Implemented Interfaces:
  Service

Direct Known Subclasses:
  ClientManagerFacadeImpl, DummyClientManagerFacade

    public abstract class ClientManagerFacade

extends Object
implements Service

Manage all interactions with clients

Author:
  jrandom

Field Summary
`static 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.
`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(Writer out)`
`abstract void` `reportAbuse(Destination dest, 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 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,
                                     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 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(Writer out)
                          throws IOException

  Specified by:
    `renderStatusHTML` in interface `Service`
  Throws:
    `IOException`