net.i2p.router.web
Class PluginUpdateChecker.PluginUpdateCheckerRunner
java.lang.Object
net.i2p.router.web.UpdateHandler.UpdateRunner
net.i2p.router.web.PluginUpdateChecker.PluginUpdateCheckerRunner
- All Implemented Interfaces:
- Runnable, EepGet.StatusListener
- Enclosing class:
- PluginUpdateChecker
public class PluginUpdateChecker.PluginUpdateCheckerRunner
- extends UpdateHandler.UpdateRunner
- implements Runnable, EepGet.StatusListener
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. |
boolean |
isNewerAvailable()
|
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()
Loop through the entire list of update URLs. |
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 |
_baos
ByteArrayOutputStream _baos
PluginUpdateChecker.PluginUpdateCheckerRunner
public PluginUpdateChecker.PluginUpdateCheckerRunner()
update
protected void update()
- Description copied from class:
UpdateHandler.UpdateRunner
- Loop through the entire list of update URLs.
For each one, first get the version from the first 56 bytes and see if
it is newer than what we are running now.
If it is, get the whole thing.
- Overrides:
update
in class UpdateHandler.UpdateRunner
isNewerAvailable
public boolean isNewerAvailable()
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