package net.i2p.router.startup;
/*
* free (adj.): unencumbered; not under the control of others
* Written by jrandom in 2003 and released into the public domain
* with no warranty of any kind, either expressed or implied.
* It probably won't make your computer catch on fire, or eat
* your children, but it might. Use at your own risk.
*
*/
import net.i2p.router.JobImpl;
import net.i2p.router.RouterContext;
import net.i2p.util.SystemVersion;
/**
* The StartupJob should be run once on router startup to initialize the system
* and set things in motion. This task loads the router configuration and then
* queues up a LoadRouterInfoJob, which reads the old RouterInfo structure from
* a previously saved version on disk. If it can't find one, it fires up a
* CreateRouterInfoJob which builds a new one from scratch, including a new
* RouterIdentity and then reruns the LoadRouterInfoJob. After that the
* router begins listening on its ports by running the BootCommSystemJob which
* is followed by the BootNetworkDbJob, though BuildTrustedLinksJob may occur
* as well. After running the BootNetworkDbJob, the final
* StartAcceptingClientsJob is queued up, which finishes the startup.
*
*/
public class StartupJob extends JobImpl {
public StartupJob(RouterContext context) {
super(context);
}
public String getName() { return "Startup Router"; }
public void runJob() {
if (!SystemVersion.isAndroid())
getContext().jobQueue().addJob(new LoadClientAppsJob(getContext()));
getContext().jobQueue().addJob(new LoadRouterInfoJob(getContext()));
}
}