net.i2p.client.naming

## Class HostsTxtNamingService

- java.lang.Object
- - net.i2p.client.naming.NamingService
  - - net.i2p.client.naming.DummyNamingService
    - - net.i2p.client.naming.MetaNamingService
      - - net.i2p.client.naming.HostsTxtNamingService

-     public class HostsTxtNamingService
      extends MetaNamingService

  A naming service based on multiple "hosts.txt" files. Supports .b32.i2p and {b64} lookups. Supports caching. All host names are converted to lower case.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `DEFAULT_HOSTS_FILE` default hosts.txt filenames
    `static String` | `PROP_HOSTS_FILE` If this system property is specified, the tunnel will read the given file for hostname=destKey values when resolving names

    - ### Fields inherited from class net.i2p.client.naming.MetaNamingService

      `_services`

    - ### Fields inherited from class net.i2p.client.naming.DummyNamingService

      `BASE32_HASH_LENGTH, CACHE_MAX_SIZE, DEST_SIZE, PROP_B32`

    - ### Fields inherited from class net.i2p.client.naming.NamingService

      `_context, _listeners, _log, _updaters, PROP_IMPL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HostsTxtNamingService(I2PAppContext context)` The naming service should only be constructed and accessed through the application context.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Set<String>` | `getNames(Properties options)` All services aggregated, unless options contains the property "file", in which case only for that file
    `Destination` | `lookup(String hostname, Properties lookupOptions, Properties storedOptions)` Same as lookup(hostname) but with in and out options Note that whether this (and lookup(hostname)) resolve Base 32 addresses in the form {52 chars}.b32.i2p is NamingService-specific.
    `boolean` | `put(String hostname, Destination d, Properties options)` Stores in the last service
    `boolean` | `putIfAbsent(String hostname, Destination d, Properties options)` Stores in the last service
    `boolean` | `remove(String hostname, Properties options)` Removes from all services

    - ### Methods inherited from class net.i2p.client.naming.MetaNamingService

      `addNamingService, export, getBase64Entries, getEntries, getNamingServices, registerListener, removeNamingService, reverseLookup, shutdown, size, unregisterListener`

    - ### Methods inherited from class net.i2p.client.naming.DummyNamingService

      `clearCache, getCache, putCache, removeCache`

    - ### Methods inherited from class net.i2p.client.naming.NamingService

      `addDestination, addDestination, addNamingService, createInstance, export, getConfiguration, getEntries, getName, getNames, getParent, isB32Host, isBlindedHost, isI2PHost, lookup, lookup, lookupAll, lookupAll, lookupBase32, lookupBase64, put, putAll, putIfAbsent, registerUpdater, remove, remove, remove, requestUpdate, reverseLookup, reverseLookup, reverseLookupAll, reverseLookupAll, reverseLookupAll, setConfiguration, size, start, toString, unregisterUpdater, update`

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

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

- - ### Field Detail

    - #### DEFAULT_HOSTS_FILE

          public static final String DEFAULT_HOSTS_FILE

      default hosts.txt filenames
      See Also:
        Constant Field Values

    - #### PROP_HOSTS_FILE

          public static final String PROP_HOSTS_FILE

      If this system property is specified, the tunnel will read the given file for hostname=destKey values when resolving names
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### HostsTxtNamingService

          public HostsTxtNamingService(I2PAppContext context)

      The naming service should only be constructed and accessed through the application context. This constructor should only be used by the appropriate application context itself.

  - ### Method Detail

    - #### getNames

          public Set<String> getNames(Properties options)

      All services aggregated, unless options contains the property "file", in which case only for that file
      Overrides:
        `getNames` in class `MetaNamingService`
      Parameters:
        `options` - NamingService-specific, can be null
      Returns:
        all known hostnames (matching the options if non-null) or empty Set if none; Returned Set is not necessarily sorted, implementation dependent

    - #### lookup

          public Destination lookup(String hostname,
                                    Properties lookupOptions,
                                    Properties storedOptions)

      Description copied from class: `NamingService`
      Same as lookup(hostname) but with in and out options Note that whether this (and lookup(hostname)) resolve Base 32 addresses in the form {52 chars}.b32.i2p is NamingService-specific.
      Overrides:
        `lookup` in class `MetaNamingService`
      Parameters:
        `hostname` - mixed case as it could be a key
        `lookupOptions` - input parameter, NamingService-specific, can be null
        `storedOptions` - output parameter, NamingService-specific, any stored properties will be added if non-null
      Returns:
        dest or null

    - #### put

          public boolean put(String hostname,
                             Destination d,
                             Properties options)

      Description copied from class: `MetaNamingService`
      Stores in the last service
      Overrides:
        `put` in class `MetaNamingService`
      Parameters:
        `hostname` - the hostname to add
        `d` - the destination for the hostname
        `options` - NamingService-specific, can be null
      Returns:
        success

    - #### putIfAbsent

          public boolean putIfAbsent(String hostname,
                                     Destination d,
                                     Properties options)

      Description copied from class: `MetaNamingService`
      Stores in the last service
      Overrides:
        `putIfAbsent` in class `MetaNamingService`
      Parameters:
        `hostname` - the hostname to add
        `d` - the destination for the hostname
        `options` - NamingService-specific, can be null
      Returns:
        success

    - #### remove

          public boolean remove(String hostname,
                                Properties options)

      Description copied from class: `MetaNamingService`
      Removes from all services
      Overrides:
        `remove` in class `MetaNamingService`
      Parameters:
        `hostname` - the hostname to remove
        `options` - NamingService-specific, can be null
      Returns:
        true if removed successfully, false on error or if it did not exist