class DevSU3UpdateChecker extends UpdateRunner
I2PThread.OOMEventListenerThread.State, Thread.UncaughtExceptionHandler_baos, _context, _currentURI, _get, _isPartial, _isRunning, _log, _method, _mgr, _newVersion, _type, _updateFile, _urls, CONNECT_TIMEOUT, done, INACTIVITY_TIMEOUT, NOPROXY_INACTIVITY_TIMEOUTMAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY| Constructor and Description |
|---|
DevSU3UpdateChecker(RouterContext ctx,
ConsoleUpdateManager mgr,
List<URI> uris)Constructor. |
| Modifier and Type | Method and Description |
|---|---|
void | bytesTransferred(long alreadyTransferred,
int currentWrite,
long bytesTransferred,
long bytesRemaining,
String url)subclasses should override |
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, getID, getMethod, getType, getURI, headerReceived, isRunning, linkify, run, shutdown, toString, updateStatusaddOOMEventThreadListener, fireOOM, removeOOMEventThreadListeneraddOOMEventListener, removeOOMEventListener, startactiveCount, 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, yieldequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitstartpublic DevSU3UpdateChecker(RouterContext ctx, ConsoleUpdateManager mgr, List<URI> uris)
ctx - the router contextmgr - the update manageruris - list of update URIspublic void bytesTransferred(long alreadyTransferred,
int currentWrite,
long bytesTransferred,
long bytesRemaining,
String url)UpdateRunnerbytesTransferred in interface EepGet.StatusListenerbytesTransferred in class UpdateRunneralreadyTransferred - 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 lengthurl - the URL being fetchedpublic void transferComplete(long alreadyTransferred,
long bytesTransferred,
long bytesRemaining,
String url,
String outputFile,
boolean notModified)UpdateRunnertransferComplete in interface EepGet.StatusListenertransferComplete in class UpdateRunneralreadyTransferred - total bytes transferredbytesTransferred - total incl headersbytesRemaining - remaining bytesurl - the URLoutputFile - null if unknown (output stream constructor)notModified - whether 304EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)public void transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
UpdateRunnertransferFailed in interface EepGet.StatusListenertransferFailed in class UpdateRunnerurl - the URLbytesTransferred - total transferredbytesRemaining - remainingcurrentAttempt - attempt indexEepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)protected void update()
UpdateRunnerupdate in class UpdateRunner