Class MetaNamingService

Direct Known Subclasses:
HostsTxtNamingService

public class MetaNamingService extends DummyNamingService
A naming service of multiple naming services. Supports .b32.i2p and {b64} lookups. Supports caching.
  • Field Details

  • Constructor Details

    • MetaNamingService

      public MetaNamingService(I2PAppContext context)
      Adds the services from the i2p.nameservicelist property, in order, as chained services.
    • MetaNamingService

      public MetaNamingService(I2PAppContext context, List<NamingService> services)
      Parameters:
      services - if non-null, services to be added. If null, this will only handle b32 and b64, until addNamingService() is called later.
      Since:
      0.8.7
  • Method Details

    • addNamingService

      public boolean addNamingService(NamingService ns, boolean head)
      Description copied from class: NamingService
      Only for chaining-capable NamingServices. This implementation returns false. Subclasses implementing chaining should override.
      Overrides:
      addNamingService in class NamingService
      Parameters:
      head - or tail
      Returns:
      success
    • getNamingServices

      public List<NamingService> getNamingServices()
      Description copied from class: NamingService
      This implementation returns null. Subclasses implementing chaining should override.
      Overrides:
      getNamingServices in class NamingService
      Returns:
      chained naming services or null
    • removeNamingService

      public boolean removeNamingService(NamingService ns)
      Description copied from class: NamingService
      Only for chaining-capable NamingServices. This implementation returns false. Subclasses implementing chaining should override.
      Overrides:
      removeNamingService in class NamingService
      Returns:
      success
    • registerListener

      public void registerListener(NamingServiceListener nsl)
      Overrides:
      registerListener in class NamingService
    • unregisterListener

      public void unregisterListener(NamingServiceListener nsl)
      Overrides:
      unregisterListener in class NamingService
    • 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 DummyNamingService
      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
    • reverseLookup

      public String reverseLookup(Destination dest, Properties options)
      Description copied from class: NamingService
      Same as reverseLookup(dest) but with options This implementation returns null. Subclasses implementing reverse lookups should override.
      Overrides:
      reverseLookup in class NamingService
      Parameters:
      dest - non-null
      options - NamingService-specific, can be null
      Returns:
      hostname or null
    • put

      public boolean put(String hostname, Destination d, Properties options)
      Stores in the last service
      Overrides:
      put in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      success
    • putIfAbsent

      public boolean putIfAbsent(String hostname, Destination d, Properties options)
      Stores in the last service
      Overrides:
      putIfAbsent in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      success
    • remove

      public boolean remove(String hostname, Properties options)
      Removes from all services
      Overrides:
      remove in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      true if removed successfully, false on error or if it did not exist
    • getEntries

      public Map<String,Destination> getEntries(Properties options)
      All services aggregated
      Overrides:
      getEntries in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      all mappings (matching the options if non-null) or empty Map if none; Returned Map is not necessarily sorted, implementation dependent
    • getBase64Entries

      public Map<String,String> getBase64Entries(Properties options)
      All services aggregated
      Overrides:
      getBase64Entries in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      all mappings (matching the options if non-null) or empty Map if none; Returned Map is not necessarily sorted, implementation dependent
      Since:
      0.9.20
    • getNames

      public Set<String> getNames(Properties options)
      All services aggregated
      Overrides:
      getNames in class NamingService
      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
    • export

      public void export(Writer out, Properties options) throws IOException
      All services aggregated. Duplicates not removed (for efficiency)
      Overrides:
      export in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Throws:
      IOException
      Since:
      0.9.20
    • size

      public int size(Properties options)
      All services aggregated
      Overrides:
      size in class NamingService
      Parameters:
      options - NamingService-specific, can be null
      Returns:
      number of entries (matching the options if non-null) or -1 if unknown
    • shutdown

      public void shutdown()
      Description copied from class: NamingService
      Parent will call when removed. If this is the root naming service, the core will stop it. Should not be called by others.
      Overrides:
      shutdown in class NamingService