## 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 java.lang.Object
implements Service

Defines the mechanism for interacting with I2P's network database

Constructor Summary
`NetworkDatabaseFacade()`

Method Summary
`abstract void` `fail(Hash dbEntry)`
`abstract java.util.Set` `findNearestRouters(Hash key, int maxNumRouters, java.util.Set peersToIgnore)` Return the RouterInfo structures for the routers closest to the given key.
`int` `getKnownLeaseSets()`
`int` `getKnownRouters()`
`abstract void` `lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs)`
`abstract LeaseSet` `lookupLeaseSetLocally(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)`
`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
`renderStatusHTML, restart, shutdown, startup`

Constructor Detail

### NetworkDatabaseFacade

    public NetworkDatabaseFacade()

Method Detail

### findNearestRouters

    public abstract java.util.Set findNearestRouters(Hash key,
                                                     int maxNumRouters,
                                                     java.util.Set 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

### 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 java.lang.IllegalArgumentException

  return the leaseSet if another leaseSet already existed at that key

  Throws:
    `java.lang.IllegalArgumentException` - if the data is not valid

### store

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

  return the routerInfo if another router already existed at that key

  Throws:
    `java.lang.IllegalArgumentException` - if the data is not valid

### publish

    public abstract void publish(RouterInfo localRouterInfo)
                          throws java.lang.IllegalArgumentException

  Throws:
    `java.lang.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)

### getKnownRouters

    public int getKnownRouters()

### getKnownLeaseSets

    public int getKnownLeaseSets()