org.apache.mina.proxy

## Class AbstractProxyLogicHandler

- java.lang.Object
- - org.apache.mina.proxy.AbstractProxyLogicHandler

- All Implemented Interfaces:
    ProxyLogicHandler
  Direct Known Subclasses:
    AbstractHttpLogicHandler, AbstractSocksLogicHandler

      public abstract class AbstractProxyLogicHandler
      extends Object
      implements ProxyLogicHandler

  AbstractProxyLogicHandler.java - Helper class to handle proxy handshaking logic. Derived classes implement proxy type specific logic.

  Based upon SSLHandler from mina-filter-ssl.

  Since:
    MINA 2.0.0-M3
  Author:
    Apache MINA Project

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractProxyLogicHandler(ProxyIoSession proxyIoSession)` Creates a new `AbstractProxyLogicHandler`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `closeSession(String message)` Closes the session.
    `protected void` | `closeSession(String message, Throwable t)` Closes the session.
    `void` | `enqueueWriteRequest(IoFilter.NextFilter nextFilter, WriteRequest writeRequest)` Enqueue a message to be written once handshaking is complete.
    `protected void` | `flushPendingWriteRequests()` Send any write requests which were queued whilst waiting for handshaking to complete.
    `protected ProxyFilter` | `getProxyFilter()` Returns the proxy filter `ProxyFilter`.
    `ProxyIoSession` | `getProxyIoSession()` Returns the `ProxyIoSession` object.
    `protected IoSession` | `getSession()` Returns the session.
    `boolean` | `isHandshakeComplete()` Returns `true` if handshaking is complete and data can be sent through the proxy.
    `protected void` | `setHandshakeComplete()` Signals that the handshake has finished.
    `protected WriteFuture` | `writeData(IoFilter.NextFilter nextFilter, IoBuffer data)` Writes data to the proxy server.

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

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

    - ### Methods inherited from interface org.apache.mina.proxy.ProxyLogicHandler

      `doHandshake, messageReceived`

- - ### Constructor Detail

    - #### AbstractProxyLogicHandler

          public AbstractProxyLogicHandler(ProxyIoSession proxyIoSession)

      Creates a new `AbstractProxyLogicHandler`.
      Parameters:
        `proxyIoSession` - `ProxyIoSession` in use.

  - ### Method Detail

    - #### getProxyFilter

          protected ProxyFilter getProxyFilter()

      Returns the proxy filter `ProxyFilter`.

    - #### getSession

          protected IoSession getSession()

      Returns the session.

    - #### getProxyIoSession

          public ProxyIoSession getProxyIoSession()

      Returns the `ProxyIoSession` object.
      Specified by:
        `getProxyIoSession` in interface `ProxyLogicHandler`
      Returns:
        the proxy session object

    - #### writeData

          protected WriteFuture writeData(IoFilter.NextFilter nextFilter,
                              IoBuffer data)

      Writes data to the proxy server.
      Parameters:
        `nextFilter` - the next filter
        `data` - Data buffer to be written.

    - #### isHandshakeComplete

          public boolean isHandshakeComplete()

      Returns `true` if handshaking is complete and data can be sent through the proxy.
      Specified by:
        `isHandshakeComplete` in interface `ProxyLogicHandler`
      Returns:
        `true` if handshaking is complete and data can be sent through the proxy, false otherwise.

    - #### setHandshakeComplete

          protected final void setHandshakeComplete()

      Signals that the handshake has finished.

    - #### flushPendingWriteRequests

          protected void flushPendingWriteRequests()
                                            throws Exception

      Send any write requests which were queued whilst waiting for handshaking to complete.
      Throws:
        `Exception`

    - #### enqueueWriteRequest

          public void enqueueWriteRequest(IoFilter.NextFilter nextFilter,
                                 WriteRequest writeRequest)

      Enqueue a message to be written once handshaking is complete.
      Specified by:
        `enqueueWriteRequest` in interface `ProxyLogicHandler`
      Parameters:
        `nextFilter` - the next filter in filter chain
        `writeRequest` - the data to be written

    - #### closeSession

          protected void closeSession(String message,
                          Throwable t)

      Closes the session.
      Parameters:
        `message` - the error message
        `t` - the exception which caused the session closing

    - #### closeSession

          protected void closeSession(String message)

      Closes the session.
      Parameters:
        `message` - the error message

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.