net.i2p.client.naming
Class BlockfileNamingService
java.lang.Object
net.i2p.client.naming.NamingService
net.i2p.client.naming.DummyNamingService
net.i2p.client.naming.BlockfileNamingService
public class BlockfileNamingService
- extends DummyNamingService
A naming service using the net.metanotion BlockFile database.
This database contains the following skiplists:
"%%__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 TBD
All host names are converted to lower case.
- Since:
- 0.8.7
Methods inherited from class net.i2p.client.naming.NamingService |
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 |
BlockfileNamingService
public BlockfileNamingService(I2PAppContext context)
- Throws:
RuntimeException
- on fatal error
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.
- Overrides:
lookup
in class DummyNamingService
- 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
put
public boolean put(String hostname,
Destination d,
Properties options)
- Overrides:
put
in class NamingService
- Parameters:
options
- If non-null and contains the key "list", add to that list
(default "hosts.txt")
Use the key "s" for the source
- 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:
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.
- Returns:
- success
remove
public boolean remove(String hostname,
Properties options)
- Overrides:
remove
in class NamingService
- Parameters:
options
- If non-null and contains the key "list", remove
from that list (default "hosts.txt", NOT all lists)
- Returns:
- success
getEntries
public Map<String,Destination> getEntries(Properties options)
- Overrides:
getEntries
in class NamingService
- Parameters:
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.
- Returns:
- all mappings (matching the options if non-null)
or empty Map if none;
Returned Map is not necessarily sorted, implementation dependent
size
public int size(Properties options)
- Overrides:
size
in class NamingService
- Parameters:
options
- If non-null and contains the key "list", return the
size of that list (default "hosts.txt", NOT all lists)
- 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
main
public static void main(String[] args)