Class FloodOnlySearchJob
- java.lang.Object
-
- net.i2p.router.JobImpl
-
- net.i2p.router.networkdb.kademlia.FloodSearchJob
-
- net.i2p.router.networkdb.kademlia.FloodOnlySearchJob
-
- All Implemented Interfaces:
Job
- Direct Known Subclasses:
SingleSearchJob
abstract class FloodOnlySearchJob extends FloodSearchJob
Uunused directly, replaced by IterativeSearchJob, but still extended by SingleSearchJob. Try sending a search to some floodfill peers, failing completely if we don't get a match from one of those peers, with no fallback to the kademlia search Exception (a semi-exception, since we still fail completely without fallback): If we don't know any floodfill peers, we ask a couple of peers at random, who will hopefully reply with some floodfill keys. We still fail without fallback, but we then spin off a job to ask that same random peer for the RouterInfos for those keys. If that job succeeds, the next search should work better. In addition, we follow the floodfill keys in the DSRM (DatabaseSearchReplyMessage) if we know less than 4 floodfills. These enhancements allow the router to bootstrap back into the network after it loses (or never had) floodfill references, as long as it knows one peer that is up.
-
-
Field Summary
Fields Modifier and Type Field Description protected ReplyJob_onReplyprotected Job_onTimeoutprotected MessageSelector_replySelector-
Fields inherited from class net.i2p.router.networkdb.kademlia.FloodSearchJob
_created, _dead, _expiration, _facade, _isLease, _key, _log, _lookupsRemaining, _onFailed, _onFind, _success, _timeoutMs, CONCURRENT_SEARCHES
-
-
Constructor Summary
Constructors Constructor Description FloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) intdecrementRemaining(Hash peer)Note that we heard from the peer(package private) voidfailed()Deprecated, unused, see FOSJ overrideStringgetName()Deprecated, unused, see FOSJ overridevoidrunJob()Deprecated, unused, see FOSJ overridebooleanshouldProcessDSRM()(package private) voidsuccess()Deprecated, unused, see FOSJ override-
Methods inherited from class net.i2p.router.networkdb.kademlia.FloodSearchJob
addDeferred, decrementRemaining, getCreated, getExpiration, getKey, getLookupsRemaining
-
Methods inherited from class net.i2p.router.JobImpl
dropped, getAddedBy, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString
-
-
-
-
Field Detail
-
_replySelector
protected final MessageSelector _replySelector
-
_onReply
protected final ReplyJob _onReply
-
_onTimeout
protected final Job _onTimeout
-
-
Constructor Detail
-
FloodOnlySearchJob
public FloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
-
-
Method Detail
-
shouldProcessDSRM
public boolean shouldProcessDSRM()
-
runJob
public void runJob()
Description copied from class:FloodSearchJobDeprecated, unused, see FOSJ override- Specified by:
runJobin interfaceJob- Overrides:
runJobin classFloodSearchJob
-
getName
public String getName()
Description copied from class:FloodSearchJobDeprecated, unused, see FOSJ override- Specified by:
getNamein interfaceJob- Overrides:
getNamein classFloodSearchJob
-
decrementRemaining
int decrementRemaining(Hash peer)
Note that we heard from the peer- Returns:
- number remaining after decrementing
-
failed
void failed()
Description copied from class:FloodSearchJobDeprecated, unused, see FOSJ override- Overrides:
failedin classFloodSearchJob
-
success
void success()
Description copied from class:FloodSearchJobDeprecated, unused, see FOSJ override- Overrides:
successin classFloodSearchJob
-
-