net.i2p.app

## Class ClientAppManagerImpl

- java.lang.Object
- - net.i2p.app.ClientAppManagerImpl

- All Implemented Interfaces:
    ClientAppManager
  Direct Known Subclasses:
    RouterAppManager

      public class ClientAppManagerImpl
      extends Object
      implements ClientAppManager

  A simple ClientAppManager that supports register/unregister only, so that client apps may find each other in AppContext. See RouterAppManager for the real thing in RouterContext.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected ConcurrentHashMap<String,ClientApp>` | `_registered`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ClientAppManagerImpl(I2PAppContext ctx)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ClientApp` | `getRegisteredApp(String name)` Get a registered app.
    `void` | `notify(ClientApp app, ClientAppState state, String message, Exception e)` Does nothing.
    `boolean` | `register(ClientApp app)` Register with the manager under the given name, so that other clients may find it.
    `void` | `unregister(ClientApp app)` Unregister with the manager.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _registered

          protected final ConcurrentHashMap<String,ClientApp> _registered

  - ### Constructor Detail

    - #### ClientAppManagerImpl

          public ClientAppManagerImpl(I2PAppContext ctx)

  - ### Method Detail

    - #### getRegisteredApp

          public ClientApp getRegisteredApp(String name)

      Get a registered app. Only used for apps finding other apps. Do not hold a static reference. If you only need to find a port, use the PortMapper instead.
      Specified by:
        `getRegisteredApp` in interface `ClientAppManager`
      Parameters:
        `name` - non-null
      Returns:
        client app or null

    - #### notify

          public void notify(ClientApp app,
                             ClientAppState state,
                             String message,
                             Exception e)

      Does nothing.
      Specified by:
        `notify` in interface `ClientAppManager`
      Parameters:
        `app` - non-null
        `state` - non-null
        `message` - may be null
        `e` - may be null

    - #### register

          public boolean register(ClientApp app)

      Register with the manager under the given name, so that other clients may find it. Only required for apps used by other apps.
      Specified by:
        `register` in interface `ClientAppManager`
      Parameters:
        `app` - non-null
      Returns:
        true if successful, false if duplicate name

    - #### unregister

          public void unregister(ClientApp app)

      Unregister with the manager. Name must be the same as that from register(). Only required for apps used by other apps.
      Specified by:
        `unregister` in interface `ClientAppManager`
      Parameters:
        `app` - non-null