All Known Implementing Classes:
DevSU3UpdateChecker, DevSU3UpdateRunner, DNSOverHTTPS, DummyHandler.DummyRunner, EepGet.CLIStatusListener, FetchAndAdd, NewsFetcher, PluginUpdateChecker, PluginUpdateRunner, Reseeder.ReseedRunner, UnsignedUpdateChecker, UnsignedUpdateRunner, UpdateRunner, WebPeer
Enclosing class:
EepGet

public static interface EepGet.StatusListener
Callback interface for monitoring EepGet transfer progress.
  • Method Summary

    All Methods
    Modifier and Type
    Method
    Description
    void
    attemptFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt, int numRetries, Exception cause)
    Attempt failed notification.
    void
    Called when a new attempt to fetch the URL is starting.
    void
    bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url)
    Total length should be == alreadyTransferred + currentWrite + bytesRemaining for all calls.
    void
    headerReceived(String url, int currentAttempt, String key, String val)
    Note: Headers are not processed, and this is not called, for most error response codes, unless EepGet.setWriteErrorToOutput() is called before fetch().
    void
    transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)
    Transfer complete notification.
    void
    transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
    Transfer failed notification.
  • Method Details

    • bytesTransferred

      void bytesTransferred(long alreadyTransferred, int currentWrite, long bytesTransferred, long bytesRemaining, String url)
      Total length should be == alreadyTransferred + currentWrite + bytesRemaining for all calls.
      Parameters:
      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
      url - the URL being fetched
    • transferComplete

      void transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)
      Transfer complete notification.
      Parameters:
      alreadyTransferred - total bytes transferred
      bytesTransferred - total incl headers
      bytesRemaining - bytes still owed by the server, or -1 if chunked encoding or no Content-Length was returned
      url - the address the transfer was reading
      outputFile - null if unknown (output stream constructor)
      notModified - whether 304
      See Also:
    • attemptFailed

      void attemptFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt, int numRetries, Exception cause)
      Attempt failed notification.
      Parameters:
      url - the address whose fetch attempt failed
      bytesTransferred - bytes received so far, counted across every attempt and including response headers
      bytesRemaining - bytes still owed, or -1 if unknown
      currentAttempt - zero-based index of the attempt that failed
      numRetries - total attempts this fetch is allowed
      cause - the exception that ended the attempt
      See Also:
    • transferFailed

      void transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)
      Transfer failed notification.
      Parameters:
      url - the address whose transfer failed
      bytesTransferred - bytes received so far, counted across every attempt and including response headers
      bytesRemaining - bytes still owed, or -1 if unknown
      currentAttempt - zero-based index of the attempt that failed
      See Also:
    • headerReceived

      void headerReceived(String url, int currentAttempt, String key, String val)
      Note: Headers are not processed, and this is not called, for most error response codes, unless EepGet.setWriteErrorToOutput() is called before fetch(). To be changed?
      Parameters:
      url - the address the header arrived on
      currentAttempt - zero-based index of the attempt the header arrived on
      key - header key
      val - header value
    • attempting

      void attempting(String url)
      Called when a new attempt to fetch the URL is starting.
      Parameters:
      url - the URL being attempted