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.
    • Constructor Detail

      • 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 Detail

      • 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
        head - or tail
        Returns:
        success
      • 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
      • 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
      • remove

        public boolean remove​(String hostname,
                              Properties options)
        Removes from all services
        Overrides:
        remove in class NamingService
        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
      • 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