## net.i2p.router.startup
Class CreateRouterInfoJob

    java.lang.Object
      net.i2p.router.JobImpl
          net.i2p.router.startup.CreateRouterInfoJob

All Implemented Interfaces:
  Job

    public class CreateRouterInfoJob

extends JobImpl

Constructor Summary
`CreateRouterInfoJob(RouterContext ctx, Job next)`

Method Summary
`(package private) RouterInfo` `createRouterInfo()` Caller must hold Router.routerInfoFileLock
`(package private) static long` `getCurrentPublishDate(RouterContext context)` We probably don't want to expose the exact time at which a router published its info.
`String` `getName()` Descriptive name of the task
`void` `runJob()` Actually perform the task.

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`

Constructor Detail

### CreateRouterInfoJob

    public CreateRouterInfoJob(RouterContext ctx,
                               Job next)

Method Detail

### getName

    public String getName()

  Description copied from interface: `Job`
  Descriptive name of the task

### runJob

    public void runJob()

  Description copied from interface: `Job`
  Actually perform the task. This call blocks until the Job is complete.

### createRouterInfo

    RouterInfo createRouterInfo()

  Caller must hold Router.routerInfoFileLock

### getCurrentPublishDate

    static long getCurrentPublishDate(RouterContext context)

  We probably don't want to expose the exact time at which a router published its info. perhaps round down to the nearest minute? 10 minutes? 30 minutes? day?