## net.i2p.router.web
Class PluginUpdateHandler.PluginUpdateRunner

    java.lang.Object
      net.i2p.router.web.UpdateHandler.UpdateRunner
          net.i2p.router.web.PluginUpdateHandler.PluginUpdateRunner

All Implemented Interfaces:
  Runnable, EepGet.StatusListener

Enclosing class:
  PluginUpdateHandler

    public class PluginUpdateHandler.PluginUpdateRunner

extends UpdateHandler.UpdateRunner
implements Runnable, EepGet.StatusListener

Field Summary

Fields inherited from class net.i2p.router.web.UpdateHandler.UpdateRunner
`_get, _isRunning, _pct, done`

Constructor Summary
`PluginUpdateHandler.PluginUpdateRunner(String url)`

Method Summary
`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` `transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)`
`void` `transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)`
`protected void` `update()`

Methods inherited from class net.i2p.router.web.UpdateHandler.UpdateRunner
`attemptFailed, attempting, headerReceived, isDone, isRunning, run`

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

Methods inherited from interface java.lang.Runnable
`run`

Methods inherited from interface net.i2p.util.EepGet.StatusListener
`attemptFailed, attempting, headerReceived`

Constructor Detail

### PluginUpdateHandler.PluginUpdateRunner

    public PluginUpdateHandler.PluginUpdateRunner(String url)

Method Detail

### update

    protected void update()

  Overrides:
    `update` in class `UpdateHandler.UpdateRunner`

### 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`
  Overrides:
    `bytesTransferred` in class `UpdateHandler.UpdateRunner`

### transferComplete

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

  Specified by:
    `transferComplete` in interface `EepGet.StatusListener`
  Overrides:
    `transferComplete` in class `UpdateHandler.UpdateRunner`

### transferFailed

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

  Specified by:
    `transferFailed` in interface `EepGet.StatusListener`
  Overrides:
    `transferFailed` in class `UpdateHandler.UpdateRunner`