class PluginUpdateChecker extends UpdateRunner
I2PThread.OOMEventListener
Thread.State, Thread.UncaughtExceptionHandler
_baos, _context, _currentURI, _get, _isPartial, _isRunning, _log, _method, _mgr, _newVersion, _type, _updateFile, _urls, CONNECT_TIMEOUT, done, INACTIVITY_TIMEOUT, NOPROXY_INACTIVITY_TIMEOUT
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Constructor and Description |
---|
PluginUpdateChecker(RouterContext ctx,
ConsoleUpdateManager mgr,
List<URI> uris,
String appName,
String oldVersion) |
Modifier and Type | Method and Description |
---|---|
void |
bytesTransferred(long alreadyTransferred,
int currentWrite,
long bytesTransferred,
long bytesRemaining,
String url)
subclasses should override
|
String |
getID()
Valid for plugins
|
void |
transferComplete(long alreadyTransferred,
long bytesTransferred,
long bytesRemaining,
String url,
String outputFile,
boolean notModified)
subclasses should override
|
void |
transferFailed(String url,
long bytesTransferred,
long bytesRemaining,
int currentAttempt)
subclasses should override
|
protected void |
update()
Loop through the entire list of update URLs.
|
_t, _t, attemptFailed, attempting, getMethod, getType, getURI, headerReceived, isRunning, linkify, run, shutdown, toString, updateStatus
addOOMEventThreadListener, fireOOM, removeOOMEventThreadListener
addOOMEventListener, removeOOMEventListener, start
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, stop, stop, suspend, yield
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
start
public PluginUpdateChecker(RouterContext ctx, ConsoleUpdateManager mgr, List<URI> uris, String appName, String oldVersion)
public String getID()
UpdateTask
getID
in interface UpdateTask
getID
in class UpdateRunner
protected void update()
UpdateRunner
update
in class UpdateRunner
public void bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url)
UpdateRunner
bytesTransferred
in interface EepGet.StatusListener
bytesTransferred
in class UpdateRunner
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 listenerbytesTransferred
- 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 lengthpublic void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)
UpdateRunner
transferComplete
in interface EepGet.StatusListener
transferComplete
in class UpdateRunner
outputFile
- null if unknown (output stream constructor)EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)
public void transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
UpdateRunner
transferFailed
in interface EepGet.StatusListener
transferFailed
in class UpdateRunner
EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)