net.i2p.router

## Class NetworkDatabaseFacade

- java.lang.Object
- - net.i2p.router.NetworkDatabaseFacade

- All Implemented Interfaces:
    Service
  Direct Known Subclasses:
    DummyNetworkDatabaseFacade, KademliaNetworkDatabaseFacade

      public abstract class NetworkDatabaseFacade
      extends Object
      implements Service

  Defines the mechanism for interacting with I2P's network database

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `NetworkDatabaseFacade()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `fail(Hash dbEntry)`
    `abstract Set<Hash>` | `findNearestRouters(Hash key, int maxNumRouters, Set<Hash> peersToIgnore)` Return the RouterInfo structures for the routers closest to the given key.
    `abstract Set<Hash>` | `getAllRouters()`
    `int` | `getKnownLeaseSets()`
    `int` | `getKnownRouters()`
    `Set<LeaseSet>` | `getLeases()` public for NetDbRenderer in routerconsole
    `Set<RouterInfo>` | `getRouters()` public for NetDbRenderer in routerconsole
    `boolean` | `isInitialized()`
    `abstract void` | `lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)`
    `abstract LeaseSet` | `lookupLeaseSetLocally(Hash key)`
    `abstract DatabaseEntry` | `lookupLocally(Hash key)`
    `abstract void` | `lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)`
    `abstract RouterInfo` | `lookupRouterInfoLocally(Hash key)`
    `abstract void` | `publish(LeaseSet localLeaseSet)`
    `abstract void` | `publish(RouterInfo localRouterInfo)`
    `void` | `renderStatusHTML(Writer out)` Deprecated. moved to router console
    `void` | `rescan()`
    `abstract LeaseSet` | `store(Hash key, LeaseSet leaseSet)` return the leaseSet if another leaseSet already existed at that key
    `abstract RouterInfo` | `store(Hash key, RouterInfo routerInfo)` return the routerInfo if another router already existed at that key
    `abstract void` | `unpublish(LeaseSet localLeaseSet)`

    - ### 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`

- - ### Constructor Detail

    - #### NetworkDatabaseFacade

          public NetworkDatabaseFacade()

  - ### Method Detail

    - #### findNearestRouters

          public abstract Set<Hash> findNearestRouters(Hash key,
                                     int maxNumRouters,
                                     Set<Hash> peersToIgnore)

      Return the RouterInfo structures for the routers closest to the given key. At most maxNumRouters will be returned
      Parameters:
        `key` - The key
        `maxNumRouters` - The maximum number of routers to return
        `peersToIgnore` - Hash of routers not to include

    - #### lookupLocally

          public abstract DatabaseEntry lookupLocally(Hash key)

      Returns:
        RouterInfo, LeaseSet, or null
      Since:
        0.8.3

    - #### lookupLeaseSet

          public abstract void lookupLeaseSet(Hash key,
                            Job onFindJob,
                            Job onFailedLookupJob,
                            long timeoutMs)

    - #### lookupLeaseSetLocally

          public abstract LeaseSet lookupLeaseSetLocally(Hash key)

    - #### lookupRouterInfo

          public abstract void lookupRouterInfo(Hash key,
                              Job onFindJob,
                              Job onFailedLookupJob,
                              long timeoutMs)

    - #### lookupRouterInfoLocally

          public abstract RouterInfo lookupRouterInfoLocally(Hash key)

    - #### store

          public abstract LeaseSet store(Hash key,
                       LeaseSet leaseSet)
                                  throws IllegalArgumentException

      return the leaseSet if another leaseSet already existed at that key
      Throws:
        `IllegalArgumentException` - if the data is not valid

    - #### store

          public abstract RouterInfo store(Hash key,
                         RouterInfo routerInfo)
                                    throws IllegalArgumentException

      return the routerInfo if another router already existed at that key
      Throws:
        `IllegalArgumentException` - if the data is not valid

    - #### publish

          public abstract void publish(RouterInfo localRouterInfo)
                                throws IllegalArgumentException

      Throws:
        `IllegalArgumentException` - if the local router is not valid

    - #### publish

          public abstract void publish(LeaseSet localLeaseSet)

    - #### unpublish

          public abstract void unpublish(LeaseSet localLeaseSet)

    - #### fail

          public abstract void fail(Hash dbEntry)

    - #### getAllRouters

          public abstract Set<Hash> getAllRouters()

    - #### getKnownRouters

          public int getKnownRouters()

    - #### getKnownLeaseSets

          public int getKnownLeaseSets()

    - #### isInitialized

          public boolean isInitialized()

    - #### rescan

          public void rescan()

    - #### renderStatusHTML

          public void renderStatusHTML(Writer out)
                                throws IOException

      Deprecated. moved to router console
      Specified by:
        `renderStatusHTML` in interface `Service`
      Throws:
        `IOException`

    - #### getLeases

          public Set<LeaseSet> getLeases()

      public for NetDbRenderer in routerconsole

    - #### getRouters

          public Set<RouterInfo> getRouters()

      public for NetDbRenderer in routerconsole