net.i2p.app

## Interface ClientAppManager

- All Known Implementing Classes:
    ClientAppManagerImpl, RouterAppManager

      public interface ClientAppManager

  Notify the router of events, and provide methods for client apps to find each other.

- - ### Method Summary

    All Methods Instance Methods Abstract 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)` Must be called on all state transitions except from UNINITIALIZED to INITIALIZED.
    `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.

- - ### Method Detail

    - #### getRegisteredApp

          ClientApp getRegisteredApp(String name)

      Get a registered app. Only used for apps finding other apps.
      Parameters:
        `name` - non-null
      Returns:
        client app or null

    - #### notify

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

      Must be called on all state transitions except from UNINITIALIZED to INITIALIZED.
      Parameters:
        `app` - non-null
        `state` - non-null
        `message` - may be null
        `e` - may be null

    - #### register

          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.
      Parameters:
        `app` - non-null
      Returns:
        true if successful, false if duplicate name

    - #### unregister

          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.
      Parameters:
        `app` - non-null