org.apache.http.nio.reactor

## Interface SessionRequest

All Known Implementing Classes:
  SessionRequestImpl

    public interface SessionRequest

SessionRequest interface represents a request to establish a new connection (or session) to a remote host. It can be used to monitor the status of the request, to block waiting for its completion, or to cancel the request.

Implementations of this interface are expected to be threading safe.

Since:
  4.0

### Method Summary

Methods
`void` `cancel()` Cancels the request.
`Object` `getAttachment()` Returns attachment object will be added to the session's context upon initialization.
`int` `getConnectTimeout()` Returns connect timeout value in milliseconds.
`IOException` `getException()` Returns `IOException` instance if the request could not be successfully executed due to an I/O error or `null` if no error occurred to this point.
`SocketAddress` `getLocalAddress()` Returns local socket address.
`SocketAddress` `getRemoteAddress()` Returns socket address of the remote host.
`IOSession` `getSession()` Returns `IOSession` instance created as a result of this request or `null` if the request is still pending.
`boolean` `isCompleted()` Determines whether the request has been completed (either successfully or unsuccessfully).
`void` `setConnectTimeout(int timeout)` Sets connect timeout value in milliseconds.
`void` `waitFor()` Waits for completion of this session request.

### Method Detail

#### getRemoteAddress

    SocketAddress getRemoteAddress()

Returns socket address of the remote host.

Returns:
  socket address of the remote host

#### getLocalAddress

    SocketAddress getLocalAddress()

Returns local socket address.

Returns:
  local socket address.

#### getAttachment

    Object getAttachment()

Returns attachment object will be added to the session's context upon initialization. This object can be used to pass an initial processing state to the protocol handler.

Returns:
  attachment object.

#### isCompleted

    boolean isCompleted()

Determines whether the request has been completed (either successfully or unsuccessfully).

Returns:
  `true</true> if the request has been completed, `false</true> if still pending.``

#### getSession

    IOSession getSession()

Returns `IOSession` instance created as a result of this request or `null` if the request is still pending.

Returns:
  I/O session or `null` if the request is still pending.

#### getException

    IOException getException()

Returns `IOException` instance if the request could not be successfully executed due to an I/O error or `null` if no error occurred to this point.

Returns:
  I/O exception or `null` if no error occurred to this point.

#### waitFor

    void waitFor()
                 throws InterruptedException

Waits for completion of this session request.

Throws:
  `InterruptedException` - in case the execution process was interrupted.

#### setConnectTimeout

    void setConnectTimeout(int timeout)

Sets connect timeout value in milliseconds.

Parameters:
  `timeout` - connect timeout value in milliseconds.

#### getConnectTimeout

    int getConnectTimeout()

Returns connect timeout value in milliseconds.

Returns:
  connect timeout value in milliseconds.

#### cancel

    void cancel()

Cancels the request. Invocation of this method will set the status of the request to completed and will unblock threads blocked in the {`waitFor()`} method.