## 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
`NetworkDatabaseFacade()`

Method Summary
`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