## org.apache.http.conn
Class BasicEofSensorWatcher

    java.lang.Object
      org.apache.http.conn.BasicEofSensorWatcher

All Implemented Interfaces:
  EofSensorWatcher

    @NotThreadSafe
    public class BasicEofSensorWatcher

extends Object
implements EofSensorWatcher

Basic implementation of `EofSensorWatcher`. The underlying connection is released on close or EOF.

Since:
  4.0

Field Summary
`protected boolean` `attemptReuse` Whether to keep the connection alive.
`protected ManagedClientConnection` `managedConn` The connection to auto-release.

Constructor Summary
`BasicEofSensorWatcher(ManagedClientConnection conn, boolean reuse)` Creates a new watcher for auto-releasing a connection.

Method Summary
`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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### managedConn

    protected final ManagedClientConnection managedConn

  The connection to auto-release.

### attemptReuse

    protected final boolean attemptReuse

  Whether to keep the connection alive.

Constructor Detail

### BasicEofSensorWatcher

    public BasicEofSensorWatcher(ManagedClientConnection conn,
                                 boolean reuse)

  Creates a new watcher for auto-releasing a connection.

  Parameters:
    `conn` - the connection to auto-release
    `reuse` - whether the connection should be re-used

Method Detail

### eofDetected

    public boolean eofDetected(InputStream wrapped)
                        throws IOException

  Description copied from interface: `EofSensorWatcher`
  Indicates that EOF is detected.

  Specified by:
    `eofDetected` in interface `EofSensorWatcher`
  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

    public boolean streamClosed(InputStream wrapped)
                         throws IOException

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

  Specified by:
    `streamClosed` in interface `EofSensorWatcher`
  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

    public boolean streamAbort(InputStream wrapped)
                        throws IOException

  Description copied from interface: `EofSensorWatcher`
  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.

  Specified by:
    `streamAbort` in interface `EofSensorWatcher`
  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.

Copyright © 1999-2012 The Apache Software Foundation. All Rights Reserved.