net.i2p.util

## Class EepGet.CLIStatusListener

- java.lang.Object
- - net.i2p.util.EepGet.CLIStatusListener

- All Implemented Interfaces:
    EepGet.StatusListener
  Enclosing class:
    EepGet

      protected class EepGet.CLIStatusListener
      extends Object
      implements EepGet.StatusListener

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CLIStatusListener()`
    `CLIStatusListener(int markSize, int lineSize)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `attemptFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt, int numRetries, Exception cause)`
    `void` | `attempting(String url)`
    `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 setWriteErrorToOutput() is called before fetch().
    `void` | `transferComplete(long alreadyTransferred, long bytesTransferred, long bytesRemaining, String url, String outputFile, boolean notModified)`
    `void` | `transferFailed(String url, long bytesTransferred, long bytesRemaining, int currentAttempt)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CLIStatusListener

          public CLIStatusListener()

    - #### CLIStatusListener

          public CLIStatusListener(int markSize,
                                   int lineSize)

  - ### Method Detail

    - #### attemptFailed

          public void attemptFailed(String url,
                                    long bytesTransferred,
                                    long bytesRemaining,
                                    int currentAttempt,
                                    int numRetries,
                                    Exception cause)

      Specified by:
        `attemptFailed` in interface `EepGet.StatusListener`
      See Also:
        `EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)`

    - #### attempting

          public void attempting(String url)

      Specified by:
        `attempting` in interface `EepGet.StatusListener`

    - #### bytesTransferred

          public void bytesTransferred(long alreadyTransferred,
                                       int currentWrite,
                                       long bytesTransferred,
                                       long bytesRemaining,
                                       String url)

      Description copied from interface: `EepGet.StatusListener`
      Total length should be == alreadyTransferred + currentWrite + bytesRemaining for all calls
      Specified by:
        `bytesTransferred` in interface `EepGet.StatusListener`
      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

    - #### headerReceived

          public void headerReceived(String url,
                                     int currentAttempt,
                                     String key,
                                     String val)

      Description copied from interface: `EepGet.StatusListener`
      Note: Headers are not processed, and this is not called, for most error response codes, unless setWriteErrorToOutput() is called before fetch(). To be changed?
      Specified by:
        `headerReceived` in interface `EepGet.StatusListener`

    - #### transferComplete

          public void transferComplete(long alreadyTransferred,
                                       long bytesTransferred,
                                       long bytesRemaining,
                                       String url,
                                       String outputFile,
                                       boolean notModified)

      Specified by:
        `transferComplete` in interface `EepGet.StatusListener`
        `outputFile` - null if unknown (output stream constructor)
      See Also:
        `EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)`

    - #### transferFailed

          public void transferFailed(String url,
                                     long bytesTransferred,
                                     long bytesRemaining,
                                     int currentAttempt)

      Specified by:
        `transferFailed` in interface `EepGet.StatusListener`
      See Also:
        `EepGet.StatusListener.bytesTransferred(long, int, long, long, java.lang.String)`