net.i2p.client.naming
Class SingleFileNamingService

java.lang.Object
  extended by net.i2p.client.naming.NamingService
      extended by net.i2p.client.naming.SingleFileNamingService

public class SingleFileNamingService
extends NamingService

A naming service based on a single file using the "hosts.txt" format. Supports adds, removes, and listeners. All methods here are case-sensitive. Conversion to lower case is done in HostsTxtNamingService. This does NOT provide .b32.i2p or {b64} resolution. It also does not do any caching. Use from HostsTxtNamingService or chain with another NamingService via MetaNamingService if you need those features.

Since:
0.8.7

Field Summary
 
Fields inherited from class net.i2p.client.naming.NamingService
_context, _listeners, _log, _updaters, PROP_IMPL
 
Constructor Summary
SingleFileNamingService(I2PAppContext context, String filename)
           
 
Method Summary
 Map<String,Destination> getEntries(Properties options)
          Warning - This will bring the whole database into memory if options is null, empty, or unsupported, use with caution.
 String getName()
           
 Set<String> getNames(Properties options)
           
 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 B32 addresses is NamingService-specific.
 boolean put(String hostname, Destination d, Properties options)
           
 boolean putIfAbsent(String hostname, Destination d, Properties options)
          Fails if entry previously exists
 boolean remove(String hostname, Properties options)
           
 String reverseLookup(Destination dest, Properties options)
          Same as reverseLookup(dest) but with options
 void shutdown()
          Parent will call when removed.
 int size(Properties options)
           
 
Methods inherited from class net.i2p.client.naming.NamingService
addNamingService, addNamingService, createInstance, getBase64Entries, getConfiguration, getEntries, getNames, getNamingServices, getParent, lookup, lookup, lookupBase32, lookupBase64, put, putAll, putIfAbsent, registerListener, registerUpdater, remove, removeNamingService, requestUpdate, reverseLookup, reverseLookup, setConfiguration, size, start, toString, unregisterListener, unregisterUpdater, update
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SingleFileNamingService

public SingleFileNamingService(I2PAppContext context,
                               String filename)
Method Detail

getName

public String getName()
Overrides:
getName in class NamingService
Returns:
the file's absolute path

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 B32 addresses is NamingService-specific.

Specified by:
lookup in class NamingService
Parameters:
hostname - case-sensitive; caller should convert to lower case
lookupOptions - ignored
storedOptions - ignored
Returns:
dest or null

reverseLookup

public String reverseLookup(Destination dest,
                            Properties options)
Description copied from class: NamingService
Same as reverseLookup(dest) but with options

Overrides:
reverseLookup in class NamingService
Parameters:
options - ignored
dest - non-null
Returns:
host name or null

put

public boolean put(String hostname,
                   Destination d,
                   Properties options)
Overrides:
put in class NamingService
Parameters:
hostname - case-sensitive; caller should convert to lower case
options - ignored
Returns:
success

putIfAbsent

public boolean putIfAbsent(String hostname,
                           Destination d,
                           Properties options)
Description copied from class: NamingService
Fails if entry previously exists

Overrides:
putIfAbsent in class NamingService
Parameters:
hostname - case-sensitive; caller should convert to lower case
options - ignored
Returns:
success

remove

public boolean remove(String hostname,
                      Properties options)
Overrides:
remove in class NamingService
Parameters:
hostname - case-sensitive; caller should convert to lower case
options - ignored
Returns:
success

getEntries

public Map<String,Destination> getEntries(Properties options)
Description copied from class: NamingService
Warning - This will bring the whole database into memory if options is null, empty, or unsupported, use with caution.

Overrides:
getEntries in class NamingService
Parameters:
options - As follows: Key "search": return only those matching substring Key "startsWith": return only those starting with ("[0-9]" allowed)
Returns:
all mappings (matching the options if non-null) or empty Map if none; Returned Map is not necessarily sorted, implementation dependent

getNames

public Set<String> getNames(Properties options)
Overrides:
getNames in class NamingService
Parameters:
options - ignored
Returns:
all known host names, unsorted

size

public int size(Properties options)
Overrides:
size in class NamingService
Parameters:
options - ignored
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