net.i2p.router.networkdb.kademlia
Class FloodOnlySearchJob

java.lang.Object
  extended by net.i2p.router.JobImpl
      extended by net.i2p.router.networkdb.kademlia.FloodSearchJob
          extended by net.i2p.router.networkdb.kademlia.FloodOnlySearchJob
All Implemented Interfaces:
Job
Direct Known Subclasses:
SingleSearchJob

 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
protected  ReplyJob _onReply
           
protected  Job _onTimeout
           
protected  MessageSelector _replySelector
           
 
Fields inherited from class net.i2p.router.networkdb.kademlia.FloodSearchJob
_created, _dead, _expiration, _facade, _isLease, _key, _log, _lookupsRemaining, _onFailed, _onFind, _timeoutMs, CONCURRENT_SEARCHES
 
Constructor Summary
FloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease)
           
 
Method Summary
(package private)  int decrementRemaining(Hash peer)
          Note that we heard from the peer
(package private)  void failed()
          Deprecated, unused, see FOSJ override
 String getName()
          Deprecated, unused, see FOSJ override
 void runJob()
          Deprecated, unused, see FOSJ override
 boolean shouldProcessDSRM()
           
(package private)  void success()
          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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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: FloodSearchJob
Deprecated, unused, see FOSJ override

Specified by:
runJob in interface Job
Overrides:
runJob in class FloodSearchJob

getName

public String getName()
Description copied from class: FloodSearchJob
Deprecated, unused, see FOSJ override

Specified by:
getName in interface Job
Overrides:
getName in class FloodSearchJob

decrementRemaining

int decrementRemaining(Hash peer)
Note that we heard from the peer

Returns:
number remaining after decrementing

failed

void failed()
Description copied from class: FloodSearchJob
Deprecated, unused, see FOSJ override

Overrides:
failed in class FloodSearchJob

success

void success()
Description copied from class: FloodSearchJob
Deprecated, unused, see FOSJ override

Overrides:
success in class FloodSearchJob