org.apache.mina.proxy
Class AbstractProxyLogicHandler

java.lang.Object
  extended by 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
Version:
$Rev: 713957 $, $Date: 2008-11-14 10:27:16 +0100 (Fr, 14 Nov 2008) $
Author:
The Apache MINA Project (dev@mina.apache.org)

Constructor Summary
AbstractProxyLogicHandler(ProxyIoSession proxyIoSession)
          Creates a new AbstractProxyLogicHandler.
 
Method Summary
protected  void closeSession(String message)
           
protected  void closeSession(String message, Throwable t)
          Close 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 proxyFilter 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 shake has finished.
 void setProxySession(ProxyIoSession proxyIoSession)
           
protected  WriteFuture writeData(IoFilter.NextFilter nextFilter, IoBuffer data)
          Write 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 proxyFilter ProxyFilter.


getSession

protected IoSession getSession()
Returns the session.


getProxyIoSession

public ProxyIoSession getProxyIoSession()
Returns the ProxyIoSession object.

Specified by:
getProxyIoSession in interface ProxyLogicHandler

setProxySession

public void setProxySession(ProxyIoSession proxyIoSession)

writeData

protected WriteFuture writeData(IoFilter.NextFilter nextFilter,
                                IoBuffer data)
                         throws UnsupportedEncodingException
Write data to the proxy server.

Parameters:
nextFilter - Downstream filter to receive data.
data - Data buffer to be written.
Throws:
UnsupportedEncodingException

isHandshakeComplete

public boolean isHandshakeComplete()
Returns true if handshaking is complete and data can be sent through the proxy.

Specified by:
isHandshakeComplete in interface ProxyLogicHandler

setHandshakeComplete

protected final void setHandshakeComplete()
Signals that the shake 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

closeSession

protected void closeSession(String message,
                            Throwable t)
Close the session.


closeSession

protected void closeSession(String message)


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