Packages that use Job
Package
Description
The I2P router application handles I2P network communication.
Router-side implementation of the Invisible Internet Client Protocol (I2CP): client sessions over plain or TLS sockets, message delivery, and lease and tunnel management on behalf of clients.
Simplified fake implementations of router interfaces (comm system and friends) for testing and embedded builds.
Garlic message creation, parsing and handling, and the outbound message jobs: one-shot sends, source routing and delivery status handling.
Network database message handling shared by all facades: database lookup jobs and local RouterInfo publication.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
Peer profiles and capacity calculation, peer test jobs, peer selection for tunnel building, and the database and tunnel history used for peer selection.
The I2P startup package loads configuration when I2P is started.
Offline analysis tools for detecting Sybil attacks and malicious peer coordination by correlating peer relationships.
Periodic maintenance jobs: stats coalescing, cryptographic algorithm checks, liveliness marking, out-of-memory handling, thread dumps, the watchdog, graceful shutdown and soft restart, update installation, republishing and config reloading.
Transport framework: the transport lifecycle and pool management, connection handling and bandwidth throttling for the transports (NTCP2 over TCP, SSU over UDP) that carry I2P messages between routers, plus NAT traversal via UPnP and GeoIP country lookups.
Tunnel messages and the tunnel layer: the
TunnelManagerFacade, tunnel build request and reply processing, and the inbound and outbound tunnel structures. Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
Uses of Job in net.i2p.router
Subinterfaces of Job in net.i2p.routerModifier and TypeInterfaceDescriptioninterfaceDefines an executable task that can be fired off in reply to a message.Classes in net.i2p.router that implement JobModifier and TypeClassDescriptionprivate classPeriodically removes expired bans and offenses.private classBans a peer for a set of its IP addresses.private classPeriodically removes expired blocklist entries.private classReads the blocklist files into memory.private classJob to sequentially dispatch all queued tunnel data messages.private classJob to sequentially dispatch all queued tunnel gateway messages.classBase implementation of a Jobprivate static classQueue entry that stops the pumper.private classRead/Write the 4 files in keyBackup/ As of 0.9.4 this is run on-demand only, there's no need to periodically sync.private final classJob reopening the history file.private classJob writing the queued entries to the file.Classes in net.i2p.router that implement interfaces with type arguments of type JobModifier and TypeClassDescriptionprivate static classOrders the jobs by their next run time.Fields in net.i2p.router declared as JobModifier and TypeFieldDescriptionprivate JobJobQueueRunner._currentJobThe job running right now.private JobJobQueueRunner._lastJobThe job that ran last.private JobOutNetMessage._onFailedReplyJob run when the reply fails.private JobOutNetMessage._onFailedSendJob run after a failed send.private JobOutNetMessage._onSendJob run after a successful send.Fields in net.i2p.router with type parameters of type JobModifier and TypeFieldDescriptionprivate final BlockingQueue<Job> JobQueue._highPriorityJobsList of high priority jobs that should run before others.JobQueue._readyIndexMembership index over the three ready queues, so duplicate detection is O(1).private final BlockingQueue<Job> JobQueue._readyJobsList of jobs that are ready to run ASAP.private final ConcurrentSkipListSet<Job> JobQueue._timedJobsSortedSet of jobs that are scheduled for running in the future, earliest first.private final BlockingQueue<Job> JobQueue._timedJobsReadyQueue of timed jobs that are ready to run (moved from _timedJobs when ready).JobQueue.QueuePumper._toMoveScratch buffer for the jobs a single pass promotes out of _timedJobs, reused across passes so a 100 Hz pumper does not allocate per pass.Methods in net.i2p.router that return JobModifier and TypeMethodDescriptionHandlerJobBuilder.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) Create a new job to handle the received message.JobQueueRunner.getCurrentJob()The job currently being executed.JobQueue.getLastJob()Last job that was executed.JobQueueRunner.getLastJob()The most recently completed job.(package private) JobJobQueue.getNext()Next job in queue.OutNetMessage.getOnFailedReplyJob()If the Message selector is specified but it doesn't find a reply before its expiration passes, this job is enqueued.OutNetMessage.getOnFailedSendJob()If the router could not be reached or the expiration passed, this job is enqueued.OutNetMessage.getOnSendJob()After the message is successfully passed to the router specified, the given job is enqueued.private JobJobQueue.takeReady(BlockingQueue<Job> queue) Dispatch from a ready queue, releasing the index claim here rather than at completion.Methods in net.i2p.router with parameters of type JobModifier and TypeMethodDescriptionvoidEnqueue the specified job for normal processing.voidJobQueue.addJobToTop(Job job) Enqueue the specified job at the top of the queue, ahead of all normal-priority jobs.private voidAdd to the future-scheduled skip list, keepingJobQueue._queuedTestJobsin step.intabstract voidNetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest) Lookup using the client's tunnels Succeeds even if LS validation fails due to unsupported sig type.abstract voidNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Lookup a LeaseSet in the network database.abstract voidNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) Lookup using the client's tunnels.abstract voidNetworkDatabaseFacade.lookupLeaseSetRemotely(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) Unconditionally lookup using the client's tunnels.abstract voidNetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a RouterInfo in the network database.private voidJobQueue.offerReady(Job job, BlockingQueue<Job> queue) Claim the job in_readyIndexbeforeoffer()publishes it, so a concurrentJobQueue.addJob(Job)sees it as already queued in that window.voidRemove a job from the job queue.private booleanJobQueue.removeReady(Job job, BlockingQueue<Job> queue) Remove from a ready queue, releasing the index and TestJob claims only if the job was actually present.private booleanJobQueue.removeTimed(Job job) Remove from the future-scheduled skip list.abstract voidClientManagerFacade.requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob) Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.voidOutNetMessage.setOnFailedReplyJob(Job job) The job enqueued when no reply arrives before expiration.voidOutNetMessage.setOnFailedSendJob(Job job) The job enqueued when the message cannot be sent.voidOutNetMessage.setOnSendJob(Job job) The job enqueued when the message is sent.private booleanJobQueue.shouldDrop(Job job, int numReady) Checks whether a late job should be dropped.(package private) voidJobQueue.updateStats(Job job, long doStart, long origStartAfter, long duration) Update stats.Method parameters in net.i2p.router with type arguments of type JobModifier and TypeMethodDescriptionintJobQueue.getJobs(Collection<Job> readyJobs, Collection<Job> timedJobs, Collection<Job> activeJobs, Collection<Job> justFinishedJobs) Collect statistics about jobs currently in the queue.private voidJobQueue.offerReady(Job job, BlockingQueue<Job> queue) Claim the job in_readyIndexbeforeoffer()publishes it, so a concurrentJobQueue.addJob(Job)sees it as already queued in that window.private booleanJobQueue.removeReady(Job job, BlockingQueue<Job> queue) Remove from a ready queue, releasing the index and TestJob claims only if the job was actually present.private JobJobQueue.takeReady(BlockingQueue<Job> queue) Dispatch from a ready queue, releasing the index claim here rather than at completion.Uses of Job in net.i2p.router.client
Classes in net.i2p.router.client that implement JobModifier and TypeClassDescriptionprivate classSends a message status update to the client.private static classJob delivering a message to a local destination.private classJob handling one message from a client session.(package private) classGiven an established connection, walk through the process of establishing the leaseset.(package private) classLook up the lease of a hash, to convert it to a Destination for the client.private classJob cleaning up when the lookup finishes.(package private) classAsync job to notify the client that a new message is available for them, or just send it directly if specified.(package private) classAsync job to send an abuse message to the client.(package private) classAsync job to walk the client through generating a lease set.private classTimeout check for the LeaseSet request.Fields in net.i2p.router.client declared as JobModifier and TypeFieldDescriptionprivate final JobClientConnectionRunner.Rerequest._onCreateJob run when the publish succeeds.private final JobClientConnectionRunner.Rerequest._onFailedJob run when the publish fails.private final JobLeaseRequestState._onFailedJob run when the request fails.private final JobLeaseRequestState._onGrantedJob run when the request succeeds.Methods in net.i2p.router.client that return JobModifier and TypeMethodDescriptionLeaseRequestState.getOnFailed()The job to run if the lease set create fails or times out.LeaseRequestState.getOnGranted()The job to run once the lease set is created.Methods in net.i2p.router.client with parameters of type JobModifier and TypeMethodDescription(package private) voidClientConnectionRunner.requestLeaseSet(Hash h, LeaseSet set, long expirationTime, Job onCreateJob, Job onFailedJob) Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.voidClientManager.requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob) Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.voidClientManagerFacadeImpl.requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob) Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.Constructors in net.i2p.router.client with parameters of type JobUses of Job in net.i2p.router.dummy
Classes in net.i2p.router.dummy that implement JobModifier and TypeClassDescriptionprivate classDelivers a message received from another router.Methods in net.i2p.router.dummy with parameters of type JobModifier and TypeMethodDescriptionvoidDummyNetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest) Look up a destination using the client's tunnels.voidDummyNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a lease set in the network database.voidDummyNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) voidDummyNetworkDatabaseFacade.lookupLeaseSetRemotely(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) voidDummyNetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a router info in the network database.voidDummyClientManagerFacade.requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob) Uses of Job in net.i2p.router.message
Classes in net.i2p.router.message that implement JobModifier and TypeClassDescriptionclassJob to handle an inbound GarlicMessage received outside of a tunnel.classSend a client message out an outbound tunnel and into an inbound tunnel on the target leaseSet.private classNote: This is run inline byOutboundClientMessageOneShotJob.send(), not on the job queue.private classFor ECIES only.private classWe couldn't even find the leaseSet, so die.private classSend a message to a lease.private classCalled after we get a confirmation that the message was delivered safely.private classFired after the basic timeout for sending through the given tunnel has been reached.classSend a message directly to another router (not through a tunnel).Fields in net.i2p.router.message declared as JobModifier and TypeFieldDescriptionprivate final JobSendMessageDirectJob._onFailJob run when the send fails.private final JobSendMessageDirectJob._onSendJob run after a successful send.Methods in net.i2p.router.message that return JobModifier and TypeMethodDescriptionGarlicMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) Create and return a job to handle this message.Constructors in net.i2p.router.message with parameters of type JobModifierConstructorDescriptionSendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, Job onSend, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority, long msgIDBloomXor) Send a message directly to a peer with full options.SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority) Send a message directly to a peer with reply handling.SendMessageDirectJob(RouterContext ctx, I2NPMessage message, Hash toPeer, ReplyJob onSuccess, Job onFail, MessageSelector selector, int timeoutMs, int priority, long msgIDBloomXor) Send a message directly to a peer with reply handling and XOR mask.Uses of Job in net.i2p.router.networkdb
Classes in net.i2p.router.networkdb that implement JobModifier and TypeClassDescriptionclassHandle a lookup for a key received from a remote peer.classPublish the local router's RouterInfo periodically.Uses of Job in net.i2p.router.networkdb.kademlia
Classes in net.i2p.router.networkdb.kademlia that implement JobModifier and TypeClassDescription(package private) classLightweight background job that refreshes RouterInfo for peers we recently interacted with.(package private) classAsk a connected peer for his RI.(package private) classOverride to not call failed() inDirectLookupMatchJob.setMessage(I2NPMessage), as it will be called from runJob().(package private) classPeriodically searches through all leases to find expired ones, failing those keys and firing up a new search for each (in case we want it later, might as well preemptively fetch it).(package private) classGo through the routing table pick routers that are out of date, but don't expire routers we're actively connected to.classRepresents an exploratory search job for a particular key in the Kademlia network database.(package private) classSimple job to monitor the floodfill pool.private classRemove a failing peer after a lookup timeout.private classVerify a failing peer after a successful lookup.private static classRecord the store failure in the peer profile.private static classNote in the profile that the store succeeded.(package private) classJob to flood nearby floodfill routers with our RI.(package private) classThis class extends StoreJob to fire off a FloodfillVerifyStoreJob after a successful store.(package private) classTwo-phase floodfill store verification.private classHandles a verification reply.private classHandles a verification reply timeout.(package private) classHandles match processing for flood-only search operations.(package private) classTimeout handler for flood-only search operations.(package private) classFlood-only search implementation for network database lookups.(package private) classBase class for flood-based search operations with fallback to Kademlia.classProcesses database lookup messages received by floodfill routers.(package private) classProcesses and stores DatabaseStoreMessage data in the floodfill network database.(package private) classBackground maintenance job that keeps introducer RouterInfos warm in the local netDb.(package private) classPerforms targeted followup lookups during iterative search operations.(package private) classProcesses DatabaseSearchReplyMessage responses during iterative searches.classTraditional Kademlia iterative search with enhanced robustness.(package private) classHandles timeout events for individual peer lookups in iterative searches.private classJob to process batched LeaseSet republishes.private classJob to asynchronously purge all routers from NetDb matching enabled ban rules.private static classJob to refresh client LeaseSets periodically.private classThis was mostly for manual reseeding, i.e.private classReads a single RouterInfo file from disk and stores it in memory.(package private) classProbes peers to verify they are still alive, usingDirectLookupJobto ask for their RouterInfo.(package private) classRefreshRoutersJob performs router info refresh operations periodically.classPeriodically republishes a local LeaseSet to the network database.private classHandles a publish timeout, retrying with floodfill verification on recurring failures, or cancelling when a newer lease set appeared locally.private classFired on a successful store, resetting the global fail counter and clearing the first-publish gate so later renewals proceed immediately.classBase class for iterative network database search operations.protected classCalled when a particular peer failed to respond before the timeout was reached, or if the peer could not be contacted at all.private classJob that re-invokes searchNext after a delay.(package private) classProcesses DatabaseSearchReplyMessage responses from floodfill peers.(package private) classCalled after a match to a db search is found(package private) classPerforms targeted followup lookups for RouterInfo entries from search replies.(package private) classPerforms a targeted lookup to a single peer for a specific key.(package private) classThis job initiates exploration of the network database by selecting keys to explore and queuing ExploreJobs up to a maximum per run.(package private) classAbstract base class for network database store operations.private classJob to handle failed store attempts.private classJob to verify successful store delivery and trigger next steps.private classA job that waits briefly before continuing to send store messages.Fields in net.i2p.router.networkdb.kademlia declared as JobModifier and TypeFieldDescriptionprivate final JobKademliaNetworkDatabaseFacade._eljExpire leases job.private final JobKademliaNetworkDatabaseFacade._erjExpire routers job.private final JobFloodfillNetworkDatabaseFacade._ffMonitorFloodfill monitor job for capability management.private final JobSearchJob.Search._onFailOn fail.private final JobSearchJob._onFailureFailure job.private final JobStoreJob._onFailureJob to run on failed store.private final JobSearchJob.Search._onFindOn find.private final JobSearchJob._onSuccessSuccess job.private final JobStoreJob._onSuccessJob to run on successful store.protected final JobFloodOnlySearchJob._onTimeoutJob to run on timeout.private JobSearchJob._pendingRequeueJobPending requeue job.Fields in net.i2p.router.networkdb.kademlia with type parameters of type JobModifier and TypeFieldDescriptionFloodSearchJob._onFailedCallbacks for search failure.FloodSearchJob._onFindCallbacks for successful search completion.Methods in net.i2p.router.networkdb.kademlia that return JobModifier and TypeMethodDescriptionFloodfillDatabaseLookupMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) Creates a job to handle an incoming DatabaseLookupMessage, or returns null if the lookup should be dropped.FloodfillDatabaseStoreMessageHandler.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) SearchJob.Search.getOnFail()The job scheduled when the search fails.SearchJob.Search.getOnFind()The job scheduled when the search finds the hash.Methods in net.i2p.router.networkdb.kademlia with parameters of type JobModifier and TypeMethodDescription(package private) voidFloodSearchJob.addDeferred(Job onFind, Job onFailed, long timeoutMs, boolean isLease) Add jobs to an existing search.intSearchJob.addDeferred(Job onFind, Job onFail, long expiration, boolean isLease) Add a deferred search to run on completion of this search.private voidFloodfillNetworkDatabaseFacade.failSearchCallbacks(Job onFindJob, Job onFailedLookupJob) Queue failure callbacks so a search that cannot start never leaves the caller waiting for a timeout that will never be scheduled.private voidKademliaNetworkDatabaseFacade.handleBanlistAndRemove(RouterInfo ri, Hash key, Job onFailedLookupJob) Banlist a router for one hour as an unreachable low-bandwidth peer older thanKademliaNetworkDatabaseFacade.MIN_VERSION, then drop it from the data store, the routing buckets and the unverified queue.private voidKademliaNetworkDatabaseFacade.handleCustomCapabilityBan(RouterInfo ri, Hash key, Job onFailedLookupJob) Handle banning a router that matches custom capability ban patterns, for four hours.private voidKademliaNetworkDatabaseFacade.handleHostileBlocklist(RouterInfo _ri, Hash key, Job onFailedLookupJob) Drop the RouterInfo of a router tagged hostile on the Banlist, without extending or adding a ban.private voidKademliaNetworkDatabaseFacade.handleIntroducerBan(RouterInfo ri, Hash key, Job onFailedLookupJob) Handle banning a router that advertises more introducers on one address than the SSU2 spec allows.private voidKademliaNetworkDatabaseFacade.handleInvalidRouterInfoBan(RouterInfo ri, Hash key, String reason, Job onFailedLookupJob) Handle banning a RouterInfo that breaks one of the RouterInfo validation rules - fabricated version, impossible publication date, or contradictory reachability flags.private voidKademliaNetworkDatabaseFacade.handlePermanentBlocklist(RouterInfo _ri, Hash key, Job onFailedLookupJob) Drop the RouterInfo of a router already on the permanent blocklist; no new ban entry is written, the existing one stands.voidKademliaNetworkDatabaseFacade.lookupDestination(Hash key, Job onFinishedJob, long timeoutMs, Hash fromLocalDest) Lookup using the client's tunnels Succeeds even if LS validation and store fails due to unsupported sig type, expired, etc.voidKademliaNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a LeaseSet, locally first.voidKademliaNetworkDatabaseFacade.lookupLeaseSet(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) Lookup using the client's tunnels UseKademliaNetworkDatabaseFacade.lookupDestination(Hash, Job, long, Hash)if you don't need the LS or don't need it validated.voidKademliaNetworkDatabaseFacade.lookupLeaseSetRemotely(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, Hash fromLocalDest) Unconditionally lookup using the client's tunnels.voidKademliaNetworkDatabaseFacade.lookupRouterInfo(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a RouterInfo, resolving over the network when not cached locally.voidKademliaNetworkDatabaseFacade.lookupRouterInfoRemote(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs) Look up a RouterInfo by hash, performing a network search if not locally cached.(package private) SearchJobFloodfillNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease) Lookup using exploratory tunnels.(package private) SearchJobFloodfillNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease, Hash fromLocalDest) Lookup using the client's tunnels.(package private) abstract SearchJobKademliaNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease) Begin a kademlia-style iterative search for the key, which can take up to timeoutMs and will fire the appropriate jobs on success or timeout (or if the search completes without any match).(package private) abstract SearchJobKademliaNetworkDatabaseFacade.search(Hash key, Job onFindJob, Job onFailedLookupJob, long timeoutMs, boolean isLease, Hash fromLocalDest) Search using the client's tunnels; seeKademliaNetworkDatabaseFacade.search(Hash, Job, Job, long, boolean).(package private) voidFloodfillNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore) Send out a store.(package private) abstract voidKademliaNetworkDatabaseFacade.sendStore(Hash key, DatabaseEntry ds, Job onSuccess, Job onFailure, long sendTimeout, Set<Hash> toIgnore) See implementation in FNDF.Constructors in net.i2p.router.networkdb.kademlia with parameters of type JobModifierConstructorDescriptionDirectLookupJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash peer, RouterInfo oldRI, Job onFind, Job onFail) Request is sent to; if null the job fails without sending anything.FloodfillStoreJob(RouterContext context, FloodfillNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs) Create a new FloodfillStoreJob to send data to floodfills.FloodfillStoreJob(RouterContext context, FloodfillNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip) Create a new FloodfillStoreJob to send data to floodfills.protectedFloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs) For DirectLookupJob extension, RI only, different match job.FloodOnlySearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease) Flood-only search for the given key against the floodfill network database.FloodSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease) Prepares a flood search for one key: records the target, the callbacks and the lease-set flag, then derives the deadline from the requested timeout, applied in full.IterativeSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease) Lookup using exploratory tunnels.IterativeSearchJob(RouterContext ctx, FloodfillNetworkDatabaseFacade facade, Hash key, Job onFind, Job onFailed, int timeoutMs, boolean isLease, Hash fromLocalDest) Lookup using the client's tunnels.Search callbacks and deadline.SearchJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, Job onSuccess, Job onFailure, long timeoutMs, boolean keepStats, boolean isLease, long msgIDBloomXor) Create a new search for the routingKey specified.StoreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs) Send a data structure to the floodfills.StoreJob(RouterContext context, KademliaNetworkDatabaseFacade facade, Hash key, DatabaseEntry data, Job onSuccess, Job onFailure, long timeoutMs, Set<Hash> toSkip) Send a data structure to the floodfills, skipping certain peers.Uses of Job in net.i2p.router.peermanager
Classes in net.i2p.router.peermanager that implement JobModifier and TypeClassDescriptionclassPeriodically tests selected peers to gather real-time performance data and update peer profiles.private classCalled when the peer's response is found.private classCalled when the peer's response times out.Uses of Job in net.i2p.router.startup
Classes in net.i2p.router.startup that implement JobModifier and TypeClassDescription(package private) classThis actually boots almost everything.(package private) classStart up the network database.(package private) classStart up the peer manager.(package private) classFor future restricted routes.classWarning - misnamed.classRun any client applications specified inclients.config.(package private) classRun once or twice at startup byStartupJob, and then runs BootCommSystemJob.(package private) classThis used be called fromStartAcceptingClientsJobbut is now disabled.(package private) classStart the I2CP interface.classThe StartupJob should be run once on router startup to initialize the system and set things in motion.Fields in net.i2p.router.startup declared as JobModifier and TypeFieldDescriptionprivate final JobBuildTrustedLinksJob._nextThe job to run once the trusted links are built.private final JobCreateRouterInfoJob._nextThe job to run after the router info is published.Constructors in net.i2p.router.startup with parameters of type JobModifierConstructorDescriptionBuildTrustedLinksJob(RouterContext context, Job next) Create a new trusted links job.(package private)CreateRouterInfoJob(RouterContext ctx, Job next) Creates a new CreateRouterInfoJob.Uses of Job in net.i2p.router.sybil
Classes in net.i2p.router.sybil that implement JobModifier and TypeClassDescriptionclassSybil attack analysis implementation.private classLoad the persisted blocklist and tell the router.Uses of Job in net.i2p.router.tasks
Classes in net.i2p.router.tasks that implement JobModifier and TypeClassDescriptionclassRouter information persistence and synchronization job.classSimply read the router config periodically, so that the user may make config changes externally.classUpdate the routing Key modifier every day at midnight (plus on startup).Uses of Job in net.i2p.router.transport
Methods in net.i2p.router.transport with parameters of type JobModifier and TypeMethodDescriptionprivate voidTransportImpl.addJobIfPresent(Job job) Runs the job if the context has a job queue.OutboundMessageRegistry.registerPending(MessageSelector replySelector, ReplyJob onReply, Job onTimeout) Registers a new, empty OutNetMessage, with the reply and timeout jobs specified.Uses of Job in net.i2p.router.tunnel
Classes in net.i2p.router.tunnel that implement JobModifier and TypeClassDescriptionprivate classJob receiving one message for the next hop.private classJob sending one message to the next routers.private classImmediately fail the tunnel if the lookup fails.private classImmediately fail the tunnel if the send fails.private classJob sending one message to the next hop.private classJob removing hops from a tunnel.private classHandle router info lookup completion.private classJob to send a message after router lookup completes.private classJob to handle timeout for router lookup.Uses of Job in net.i2p.router.tunnel.pool
Classes in net.i2p.router.tunnel.pool that implement JobModifier and TypeClassDescriptionprivate classJob that forwards one build request after its lookup.private classJob that times out one unanswered build request.private static classNo-op job returned once a tunnel build message is handled.private static classRemove the participating tunnel if we can't contact the next hop Not strictly necessary, as the entry doesn't use that much space, but it affects capacity calculations.private static classNo-op job returned once a tunnel build reply message is handled.private static classJob executed when the first hop of an outbound tunnel build fails to receive the request.(package private) classHandles tunnel expiration in two phases for graceful shutdown.classRepeatedly tests a single tunnel for its lifetime to ensure it remains functional.private classHandles the reply to one test message.private classTimes out one test message.private static classSingle queue entry that drains the first-test buffer in small batches.private static final classDemotes a peer that could not be reached by a pre-connect probe.private static classBuilds tunnels for a pool that never came up.(package private) static classBackground reachability probe over the peers a client pool would provisionally use as a first hop.private static classJob to refresh LeaseSets after slow tunnel removal.private static classPeriodically drops tunnels that fail the latency test.Fields in net.i2p.router.tunnel.pool declared as JobModifier and TypeFieldDescriptionprivate final JobBuildHandler._buildMessageHandlerJobJob handling inbound build requests.private final JobBuildHandler._buildReplyMessageHandlerJobJob handling inbound build replies.Methods in net.i2p.router.tunnel.pool that return JobModifier and TypeMethodDescriptionBuildHandler.TunnelBuildMessageHandlerJobBuilder.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) Either from or fromHash may be null, but both should be null only if we're to be a IBGW and it came from us as a OBEP.BuildHandler.TunnelBuildReplyMessageHandlerJobBuilder.createJob(I2NPMessage receivedMessage, RouterIdentity from, Hash fromHash) Uses of Job in net.i2p.router.web.helpers
Classes in net.i2p.router.web.helpers that implement JobModifier and TypeClassDescriptionprivate classJob used to wait for a router lookup.Fields in net.i2p.router.web.helpers with type parameters of type JobMethods in net.i2p.router.web.helpers with parameters of type JobModifier and TypeMethodDescriptionlongThe time key for the job.Method parameters in net.i2p.router.web.helpers with type arguments of type JobModifier and TypeMethodDescriptionprivate static List<JobQueueHelper.JobGroup> JobQueueHelper.groupByNameAndTime(List<Job> jobs, JobQueueHelper.JobTimeFn timeFn) Group the jobs by name, then by the time key derived from each job.private static StringJobQueueHelper.jobNameDisplay(String jobName, List<Job> jobs) Build the job name label, with a count badge when the group holds several jobs.Constructor parameters in net.i2p.router.web.helpers with type arguments of type Job