## net.i2p.router.networkdb.reseed
Class Reseeder.ReseedRunner

    java.lang.Object
      net.i2p.router.networkdb.reseed.Reseeder.ReseedRunner

All Implemented Interfaces:
  Runnable, EepGet.StatusListener

Enclosing class:
  Reseeder

    public class Reseeder.ReseedRunner

extends Object
implements Runnable, EepGet.StatusListener

Constructor Summary
`Reseeder.ReseedRunner()`

Method Summary
`void` `attemptFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt, int numRetries, Exception cause)`
`void` `attempting(String url)` save the start time
`void` `bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url)` alreadyTransferred - total of all attempts, not including currentWrite If nonzero on the first call, a partial file of that length was found, _and_ the server supports resume.
`void` `headerReceived(String url, int attemptNum, String key, String val)` Use the Date header as a backup time source
`boolean` `isRunning()`
`void` `run()`
`void` `transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)`
`void` `transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### Reseeder.ReseedRunner

    public Reseeder.ReseedRunner()

Method Detail

### isRunning

    public boolean isRunning()

### run

    public void run()

  Specified by:
    `run` in interface `Runnable`

### attemptFailed

    public void attemptFailed(String url,
                              long bytesTransferred,
                              long bytesRemaining,
                              int currentAttempt,
                              int numRetries,
                              Exception cause)

  Specified by:
    `attemptFailed` in interface `EepGet.StatusListener`

### bytesTransferred

    public void bytesTransferred(long alreadyTransferred,
                                 int currentWrite,
                                 long bytesTransferred,
                                 long bytesRemaining,
                                 String url)

  Description copied from interface: `EepGet.StatusListener`
  alreadyTransferred - total of all attempts, not including currentWrite If nonzero on the first call, a partial file of that length was found, _and_ the server supports resume. If zero on a subsequent call after some bytes are transferred (and presumably after an attemptFailed), the server does _not_ support resume and we had to start over. To track _actual_ transfer if the output file could already exist, the listener should keep its own counter, or subtract the initial alreadyTransferred value. And watch out for alreadyTransferred resetting if a resume failed... currentWrite - since last call to the listener bytesTransferred - includes headers, retries, redirects, discarded partial downloads, ... bytesRemaining - on this attempt only, currentWrite already subtracted - or -1 if chunked encoding or server does not return a length Total length should be == alreadyTransferred + currentWrite + bytesRemaining for all calls

  Specified by:
    `bytesTransferred` in interface `EepGet.StatusListener`

### transferComplete

    public void transferComplete(long alreadyTransferred,
                                 long bytesTransferred,
                                 long bytesRemaining,
                                 String url,
                                 String outputFile,
                                 boolean notModified)

  Specified by:
    `transferComplete` in interface `EepGet.StatusListener`

### transferFailed

    public void transferFailed(String url,
                               long bytesTransferred,
                               long bytesRemaining,
                               int currentAttempt)

  Specified by:
    `transferFailed` in interface `EepGet.StatusListener`

### headerReceived

    public void headerReceived(String url,
                               int attemptNum,
                               String key,
                               String val)

  Use the Date header as a backup time source

  Specified by:
    `headerReceived` in interface `EepGet.StatusListener`

### attempting

    public void attempting(String url)

  save the start time

  Specified by:
    `attempting` in interface `EepGet.StatusListener`