Package net.i2p.client.naming
Class MetaNamingService
java.lang.Object
net.i2p.client.naming.NamingService
net.i2p.client.naming.DummyNamingService
net.i2p.client.naming.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 Summary
Fields Modifier and Type Field Description protected List<NamingService>_servicesFields inherited from class net.i2p.client.naming.DummyNamingService
BASE32_HASH_LENGTH, CACHE_MAX_SIZE, DEST_SIZE, PROP_B32Fields inherited from class net.i2p.client.naming.NamingService
_context, _listeners, _log, _updaters, PROP_IMPL -
Constructor Summary
Constructors Constructor Description MetaNamingService(I2PAppContext context)Adds the services from the i2p.nameservicelist property, in order, as chained services.MetaNamingService(I2PAppContext context, List<NamingService> services) -
Method Summary
Modifier and Type Method Description booleanaddNamingService(NamingService ns, boolean head)Only for chaining-capable NamingServices.voidexport(Writer out, Properties options)All services aggregated.Map<String,String>getBase64Entries(Properties options)All services aggregatedMap<String,Destination>getEntries(Properties options)All services aggregatedSet<String>getNames(Properties options)All services aggregatedList<NamingService>getNamingServices()This implementation returns null.Destinationlookup(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.booleanput(String hostname, Destination d, Properties options)Stores in the last servicebooleanputIfAbsent(String hostname, Destination d, Properties options)Stores in the last servicevoidregisterListener(NamingServiceListener nsl)booleanremove(String hostname, Properties options)Removes from all servicesbooleanremoveNamingService(NamingService ns)Only for chaining-capable NamingServices.StringreverseLookup(Destination dest, Properties options)Same as reverseLookup(dest) but with options This implementation returns null.voidshutdown()Parent will call when removed.intsize(Properties options)All services aggregatedvoidunregisterListener(NamingServiceListener nsl)Methods inherited from class net.i2p.client.naming.DummyNamingService
clearCache, getCache, putCache, removeCacheMethods inherited from class net.i2p.client.naming.NamingService
addDestination, addDestination, addNamingService, createInstance, export, getConfiguration, getEntries, getName, getNames, getParent, 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
-
Field Details
-
Constructor Details
-
MetaNamingService
Adds the services from the i2p.nameservicelist property, in order, as chained services. -
MetaNamingService
- 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
Description copied from class:NamingServiceOnly for chaining-capable NamingServices. This implementation returns false. Subclasses implementing chaining should override.- Overrides:
addNamingServicein classNamingServicehead- or tail- Returns:
- success
-
getNamingServices
Description copied from class:NamingServiceThis implementation returns null. Subclasses implementing chaining should override.- Overrides:
getNamingServicesin classNamingService- Returns:
- chained naming services or null
-
removeNamingService
Description copied from class:NamingServiceOnly for chaining-capable NamingServices. This implementation returns false. Subclasses implementing chaining should override.- Overrides:
removeNamingServicein classNamingService- Returns:
- success
-
registerListener
- Overrides:
registerListenerin classNamingService
-
unregisterListener
- Overrides:
unregisterListenerin classNamingService
-
lookup
Description copied from class:NamingServiceSame 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:
lookupin classDummyNamingService- Parameters:
hostname- mixed case as it could be a keylookupOptions- input parameter, NamingService-specific, can be nullstoredOptions- output parameter, NamingService-specific, any stored properties will be added if non-null- Returns:
- dest or null
-
reverseLookup
Description copied from class:NamingServiceSame as reverseLookup(dest) but with options This implementation returns null. Subclasses implementing reverse lookups should override.- Overrides:
reverseLookupin classNamingService- Parameters:
dest- non-nulloptions- NamingService-specific, can be null- Returns:
- host name or null
-
put
Stores in the last service- Overrides:
putin classNamingServiceoptions- NamingService-specific, can be null- Returns:
- success
-
putIfAbsent
Stores in the last service- Overrides:
putIfAbsentin classNamingServiceoptions- NamingService-specific, can be null- Returns:
- success
-
remove
Removes from all services- Overrides:
removein classNamingServiceoptions- NamingService-specific, can be null- Returns:
- true if removed successfully, false on error or if it did not exist
-
getEntries
All services aggregated- Overrides:
getEntriesin classNamingService- 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
All services aggregated- Overrides:
getBase64Entriesin classNamingService- 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
All services aggregated- Overrides:
getNamesin classNamingService- Parameters:
options- NamingService-specific, can be null- Returns:
- all known host names (matching the options if non-null) or empty Set if none; Returned Set is not necessarily sorted, implementation dependent
-
export
All services aggregated. Duplicates not removed (for efficiency)- Overrides:
exportin classNamingServiceoptions- NamingService-specific, can be null- Throws:
IOException- Since:
- 0.9.20
-
size
All services aggregated- Overrides:
sizein classNamingService- 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:NamingServiceParent will call when removed. If this is the root naming service, the core will stop it. Should not be called by others.- Overrides:
shutdownin classNamingService
-