net.i2p.router.web
Class UpdateHandler.UpdateRunner

java.lang.Object
  extended by net.i2p.router.web.UpdateHandler.UpdateRunner
All Implemented Interfaces:
java.lang.Runnable, EepGet.StatusListener
Direct Known Subclasses:
PluginUpdateChecker.PluginUpdateCheckerRunner, PluginUpdateHandler.PluginUpdateRunner, UnsignedUpdateHandler.UnsignedUpdateRunner
Enclosing class:
UpdateHandler

public class UpdateHandler.UpdateRunner
extends java.lang.Object
implements java.lang.Runnable, EepGet.StatusListener


Field Summary
protected  EepGet _get
           
protected  boolean _isRunning
           
protected  java.text.DecimalFormat _pct
           
protected  boolean done
           
 
Constructor Summary
UpdateHandler.UpdateRunner()
           
 
Method Summary
 void attemptFailed(java.lang.String url, long bytesTransferred, long bytesRemaining, int currentAttempt, int numRetries, java.lang.Exception cause)
           
 void attempting(java.lang.String url)
           
 void bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, java.lang.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(java.lang.String url, int attemptNum, java.lang.String key, java.lang.String val)
           
 boolean isDone()
           
 boolean isRunning()
           
 void run()
           
 void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, java.lang.String url, java.lang.String outputFile, boolean notModified)
           
 void transferFailed(java.lang.String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
           
protected  void update()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_isRunning

protected boolean _isRunning

done

protected boolean done

_get

protected EepGet _get

_pct

protected final java.text.DecimalFormat _pct
Constructor Detail

UpdateHandler.UpdateRunner

public UpdateHandler.UpdateRunner()
Method Detail

isRunning

public boolean isRunning()

isDone

public boolean isDone()

run

public void run()
Specified by:
run in interface java.lang.Runnable

update

protected void update()

attemptFailed

public void attemptFailed(java.lang.String url,
                          long bytesTransferred,
                          long bytesRemaining,
                          int currentAttempt,
                          int numRetries,
                          java.lang.Exception cause)
Specified by:
attemptFailed in interface EepGet.StatusListener

bytesTransferred

public void bytesTransferred(long alreadyTransferred,
                             int currentWrite,
                             long bytesTransferred,
                             long bytesRemaining,
                             java.lang.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,
                             java.lang.String url,
                             java.lang.String outputFile,
                             boolean notModified)
Specified by:
transferComplete in interface EepGet.StatusListener

transferFailed

public void transferFailed(java.lang.String url,
                           long bytesTransferred,
                           long bytesRemaining,
                           int currentAttempt)
Specified by:
transferFailed in interface EepGet.StatusListener

headerReceived

public void headerReceived(java.lang.String url,
                           int attemptNum,
                           java.lang.String key,
                           java.lang.String val)
Specified by:
headerReceived in interface EepGet.StatusListener

attempting

public void attempting(java.lang.String url)
Specified by:
attempting in interface EepGet.StatusListener