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

Constructors
Constructor and Description
`Reseeder.ReseedRunner()`

### Method Summary

Methods
`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`