Class FloodOnlySearchJob

All Implemented Interfaces:
Job
Direct Known Subclasses:
DirectLookupJob, 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 Details

    • _replySelector

      protected final MessageSelector _replySelector
    • _onReply

      protected final ReplyJob _onReply
    • _onTimeout

      protected final Job _onTimeout
  • Constructor Details

  • Method Details

    • 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