net.i2p.client.naming
public class BlockfileNamingService extends DummyNamingService
"%%__INFO__%%" is the master database skiplist, containing one entry: "info": a Properties, serialized with DataHelper functions: "version": "1" "created": Java long time (ms) "lists": Comma-separated list of host databases, to be searched in-order for lookups For each host database, there is a skiplist containing the hosts for that database. The keys/values in these skiplists are as follows: key: a UTF-8 String value: a DestEntry, which is a Properties (serialized with DataHelper) followed by a Destination (serialized as usual). The DestEntry Properties typically contains: "a": The time added (Java long time in ms) "s": The original source of the entry (typically a file name or subscription URL) others TBDAll host names are converted to lower case.
BASE32_HASH_LENGTH, CACHE_MAX_SIZE, DEST_SIZE, PROP_B32
_context, _listeners, _log, _updaters, PROP_IMPL
Constructor and Description |
---|
BlockfileNamingService(I2PAppContext context) |
Modifier and Type | Method and Description |
---|---|
Map<String,Destination> |
getEntries(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.
|
static void |
main(String[] args) |
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) |
void |
shutdown()
Parent will call when removed.
|
int |
size(Properties options) |
clearCache, getCache, putCache, removeCache
addNamingService, addNamingService, createInstance, getBase64Entries, getConfiguration, getEntries, getName, getNames, getNames, getNamingServices, getParent, lookup, lookup, lookupBase32, lookupBase64, put, putAll, putIfAbsent, registerListener, registerUpdater, remove, removeNamingService, requestUpdate, reverseLookup, reverseLookup, reverseLookup, setConfiguration, size, start, toString, unregisterListener, unregisterUpdater, update
public BlockfileNamingService(I2PAppContext context)
RuntimeException
- on fatal errorpublic Destination lookup(String hostname, Properties lookupOptions, Properties storedOptions)
NamingService
lookup
in class DummyNamingService
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-nullpublic boolean put(String hostname, Destination d, Properties options)
put
in class NamingService
options
- If non-null and contains the key "list", add to that list
(default "hosts.txt")
Use the key "s" for the sourcepublic boolean putIfAbsent(String hostname, Destination d, Properties options)
NamingService
putIfAbsent
in class NamingService
options
- If non-null and contains the key "list", add to that list
(default "hosts.txt")
Use the key "s" for the source.
Key "a" will be added with the current time, unless
"a" is present in options.public boolean remove(String hostname, Properties options)
remove
in class NamingService
options
- If non-null and contains the key "list", remove
from that list (default "hosts.txt", NOT all lists)public Map<String,Destination> getEntries(Properties options)
getEntries
in class NamingService
options
- If non-null and contains the key "list", get
from that list (default "hosts.txt", NOT all lists)
Key "skip": skip that many entries
Key "limit": max number to return
Key "search": return only those matching substring
Key "startsWith": return only those starting with
("[0-9]" allowed)
Key "beginWith": start here in the iteration
Don't use both startsWith and beginWith.
Search, startsWith, and beginWith values must be lower case.public int size(Properties options)
size
in class NamingService
options
- If non-null and contains the key "list", return the
size of that list (default "hosts.txt", NOT all lists)public void shutdown()
NamingService
shutdown
in class NamingService
public static void main(String[] args)