java.lang.Object
net.i2p.router.networkdb.kademlia.FloodfillDatabaseStoreMessageHandler
All Implemented Interfaces:
HandlerJobBuilder

public class FloodfillDatabaseStoreMessageHandlerextends Object implements HandlerJobBuilder
Handles incoming DatabaseStoreMessage for floodfill network database operations.

Creates and dispatches HandleFloodfillDatabaseStoreMessageJob instances to process database store requests received from remote peers. Routes messages to the appropriate network database facade based on the received-by field, supporting both floodfill and client database contexts.

Maintains statistics for store operations including handling counts, processing times, and lease-specific metrics. Provides the entry point for all floodfill database store message processing in the Kademlia network database system.

  • Field Details

    • _context

      private RouterContext _context
      The router context handling the store.
    • _facade

      The store the profile is checked against.
    • _msgIDBloomXor

      private final long _msgIDBloomXor
      Random mask hiding which message ids were seen.
  • Constructor Details

    • FloodfillDatabaseStoreMessageHandler

      public FloodfillDatabaseStoreMessageHandler(RouterContext context, FloodfillNetworkDatabaseFacade facade)
      Create a handler for floodfill database store messages.
      Parameters:
      context - the router context
      facade - the floodfill network database facade
  • Method Details

    • createJob

      public Job createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash)
      Description copied from interface: HandlerJobBuilder
      Create a new job to handle the received message.
      Specified by:
      createJob in interface HandlerJobBuilder
      Parameters:
      receivedMessage - I2NP message received
      from - router that sent the message (if available)
      fromHash - hash of the routerIdentity of the router that sent the message (if available)
      Returns:
      a job or null if no particular job is appropriate (in which case, the message should go into the inbound message pool)