org.apache.hc.client5.http.io

## Interface EofSensorWatcher

    public interface EofSensorWatcher

A watcher for `EofSensorInputStream`. Each stream will notify its watcher at most once.

Since:
  4.0

### Method Summary

Methods
`boolean` `eofDetected(InputStream wrapped)` Indicates that EOF is detected.
`boolean` `streamAbort(InputStream wrapped)` Indicates that the `stream` is aborted.
`boolean` `streamClosed(InputStream wrapped)` Indicates that the `stream` is closed.

### Method Detail

#### eofDetected

    boolean eofDetected(InputStream wrapped)
                        throws IOException

Indicates that EOF is detected.

Parameters:
  `wrapped` - the underlying stream which has reached EOF
Returns:
  `true` if `wrapped` should be closed, `false` if it should be left alone
Throws:
  `IOException` - in case of an IO problem, for example if the watcher itself closes the underlying stream. The caller will leave the wrapped stream alone, as if `false` was returned.

#### streamClosed

    boolean streamClosed(InputStream wrapped)
                         throws IOException

Indicates that the `stream` is closed. This method will be called only if EOF was not detected before closing. Otherwise, `eofDetected` is called.

Parameters:
  `wrapped` - the underlying stream which has not reached EOF
Returns:
  `true` if `wrapped` should be closed, `false` if it should be left alone
Throws:
  `IOException` - in case of an IO problem, for example if the watcher itself closes the underlying stream. The caller will leave the wrapped stream alone, as if `false` was returned.

#### streamAbort

    boolean streamAbort(InputStream wrapped)
                        throws IOException

Indicates that the `stream` is aborted. This method will be called only if EOF was not detected before aborting. Otherwise, `eofDetected` is called.

This method will also be invoked when an input operation causes an IOException to be thrown to make sure the input stream gets shut down.

Parameters:
  `wrapped` - the underlying stream which has not reached EOF
Returns:
  `true` if `wrapped` should be closed, `false` if it should be left alone
Throws:
  `IOException` - in case of an IO problem, for example if the watcher itself closes the underlying stream. The caller will leave the wrapped stream alone, as if `false` was returned.