download package - librespeed/speedtest-android GitHub Wiki

Downloader class

A Thread that uses a Connection to download an endless stream of garbage data from the server. The download starts immediately (no need to call start()).

Constructor:

public Downloader(Connection c, String path, int ckSize)
  • c: the instance of Connection to be used
  • path: path on the server where the garbage data can be fetched
  • ckSize: size in megabytes of the garbage data (also see documentation for garbage.php)

Important: If you're not using garbage.php, your replacement must accept the ckSize parameter; if you're using a large file of garbage data, it needs to be at least ckSize megabytes for this downloader to work properly.

This thread repeatedly sends a GET request to the speified path and download all the data coming to it. When the amount of downloaded data is nearing ckSize (75%), a new request is made to ensure a steady flow of data.

Callbacks:

  • onProgress(long downloaded): periodically called to inform of how much data was downloaded. (Max once every 200ms)
  • onError(String err): called if something goes wrong. err contains the error message

Methods:

  • stopASAP(): asks to stop the download as soon as possible. The Connection will also be closed. Use join() to wait for the thread to die
  • resetDownloadCounter(): resets the counter of the amount of downloaded data
  • getDownloaded(): returns the amount of downloaded data since the beginning or last reset
DownloadStream class

A stream for the download test. Manages a Connection and a Downloader, and handles errors according to the specified policy. Starts immediately.

Constructor:

public DownloadStream(String server, String path, int ckSize, String errorHandlingMode, int connectTimeout, int soTimeout, int recvBuffer, int sendBuffer, Logger log)
  • server: URL to the server where we need to connect
  • path: path on the server where the garbage data can be fetched
  • ckSize: size in megabytes of the garbage data
  • errorHandlingMode: what we should do in case of errors:
    • SpeedtestConfig.ONERROR_FAIL: Fail immediately
    • SpeedtestConfig.ONERROR_ATTEMPT_RESTART: Try to reconnect. If that fails, the stream fails
    • SpeedtestConfig.ONERROR_MUST_RESTART: Keep trying to reconnect until we succeed (or stopped)
  • connectTimeout, soTimeout, recvBuffer, sendBuffer: settings for the socket created by Connection
  • log: instance of Logger that is used to report errors such as dead connections

Callbacks:

  • onError(String err): called if the stream fails. err contains the error message

Methods:

  • stopASAP(): asks to stop the download as soon as possible. The Connection will also be closed. Use join() to wait for the connection to be actually closed
  • resetDownloadCounter(): resets the counter of the amount of downloaded data
  • getTotalDownloaded(): returns the amount of downloaded data since the beginning or last reset
  • join(): waits for the instance of Downloader to die