net.i2p.router.web
Class UpdateHandler.UpdateRunner
java.lang.Object
net.i2p.router.web.UpdateHandler.UpdateRunner
- All Implemented Interfaces:
- java.lang.Runnable, EepGet.StatusListener
- Direct Known Subclasses:
- UnsignedUpdateHandler.UnsignedUpdateRunner
- Enclosing class:
- UpdateHandler
public class UpdateHandler.UpdateRunner
- extends java.lang.Object
- implements java.lang.Runnable, EepGet.StatusListener
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 |
_isRunning
protected boolean _isRunning
done
protected boolean done
_get
protected EepGet _get
UpdateHandler.UpdateRunner
public UpdateHandler.UpdateRunner()
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