rabbit.httpio
Class BaseSocketHandler

java.lang.Object
  extended by rabbit.httpio.BaseSocketHandler
All Implemented Interfaces:
Runnable, SocketHandler
Direct Known Subclasses:
BlockSender, HttpHeaderReader

public abstract class BaseSocketHandler
extends Object
implements SocketHandler

A base class for socket handlers.

Author:
Robert Olofsson

Field Summary
protected  BufferHandle bh
          The buffer handle.
protected  SocketChannel channel
          The client channel.
protected  Logger logger
          The logger to use.
protected  Selector selector
          The selector we are using.
protected  SelectionKey sk
          The selection key we are using.
 
Constructor Summary
BaseSocketHandler(SocketChannel channel, BufferHandle bh, Selector selector, Logger logger)
           
 
Method Summary
protected  void closeDown()
           
protected  ByteBuffer getBuffer()
           
protected  Logger getLogger()
           
protected abstract  int getSocketOperations()
           
protected  void growBuffer()
           
protected  void register()
           
protected  void releaseBuffer()
           
protected  void unregister()
           
 boolean useSeparateThread()
          Check if this handler needs to run in a separate thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface rabbit.io.SocketHandler
getDescription, timeout
 
Methods inherited from interface java.lang.Runnable
run
 

Field Detail

channel

protected SocketChannel channel
The client channel.


selector

protected Selector selector
The selector we are using.


sk

protected SelectionKey sk
The selection key we are using.


logger

protected Logger logger
The logger to use.


bh

protected BufferHandle bh
The buffer handle.

Constructor Detail

BaseSocketHandler

public BaseSocketHandler(SocketChannel channel,
                         BufferHandle bh,
                         Selector selector,
                         Logger logger)
                  throws IOException
Throws:
IOException
Method Detail

register

protected void register()
                 throws ClosedChannelException
Throws:
ClosedChannelException

getBuffer

protected ByteBuffer getBuffer()

growBuffer

protected void growBuffer()

releaseBuffer

protected void releaseBuffer()

getSocketOperations

protected abstract int getSocketOperations()

useSeparateThread

public boolean useSeparateThread()
Description copied from interface: SocketHandler
Check if this handler needs to run in a separate thread.

Specified by:
useSeparateThread in interface SocketHandler

getLogger

protected Logger getLogger()

closeDown

protected void closeDown()

unregister

protected void unregister()