com.sun.grizzly.util
Class WorkerThreadImpl

java.lang.Object
  extended by java.lang.Thread
      extended by com.sun.grizzly.util.WorkerThread
          extended by com.sun.grizzly.util.WorkerThreadImpl
All Implemented Interfaces:
Runnable

public class WorkerThreadImpl
extends WorkerThread

Simple worker thread used for processing HTTP requests. All threads are synchronized using a DefaultThreadPool object

Author:
Jean-Francois Arcand

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
 
Field Summary
protected static ThreadGroup threadGroup
          The ThreadGroup used.
protected  DefaultThreadPool threadPool
          The DefaultThreadPool on which this thread synchronize.
 
Fields inherited from class com.sun.grizzly.util.WorkerThread
byteBuffer, inputBB, outputBB, sslEngine
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
WorkerThreadImpl(DefaultThreadPool threadPool, String name)
          Create a Thread that will synchronizes/block on DefaultThreadPool instance.
WorkerThreadImpl(DefaultThreadPool threadPool, String name, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on DefaultThreadPool instance.
WorkerThreadImpl(DefaultThreadPool threadPool, String name, Runnable runnable, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on DefaultThreadPool instance.
WorkerThreadImpl(ThreadGroup threadGroup, Runnable runnable)
          Create a Thread that will synchronizes/block on DefaultThreadPool instance.
WorkerThreadImpl(ThreadGroup threadGroup, Runnable runnable, int initialByteBufferSize)
          Create a Thread that will synchronizes/block on DefaultThreadPool instance.
 
Method Summary
 void attach(ThreadAttachment threadAttachment)
          Attach the ThreadAttachment to this instance.
protected  void createByteBuffer(boolean force)
          Allocate a ByteBuffer if the current instance is null;
 ThreadAttachment detach()
          Detach the current set of attributes (state) associated with this instance.
 ThreadAttachment getAttachment()
          Get the current set of attributes (state) associated with this instance.
 ByteBufferFactory.ByteBufferType getByteBufferType()
          The ByteBufferType used to create the ByteBuffer associated with this object.
protected  void processTask(Callable t)
          Processes the given task.
protected  void reset()
           
 void setByteBufferType(ByteBufferFactory.ByteBufferType byteBufferType)
          Set the ByteBufferType to use when creating the ByteBuffer associated with this object.
 ThreadAttachment updateAttachment(int mode)
          Updates Thread associated attachment according to the passed mode.
 
Methods inherited from class com.sun.grizzly.util.WorkerThread
getByteBuffer, getInputBB, getOutputBB, getSSLEngine, setByteBuffer, setInputBB, setOutputBB, setSSLEngine
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

threadPool

protected DefaultThreadPool threadPool
The DefaultThreadPool on which this thread synchronize.


threadGroup

protected static final ThreadGroup threadGroup
The ThreadGroup used.

Constructor Detail

WorkerThreadImpl

public WorkerThreadImpl(ThreadGroup threadGroup,
                        Runnable runnable)
Create a Thread that will synchronizes/block on DefaultThreadPool instance.

Parameters:
threadGroup - ThreadGroup
runnable - Runnable

WorkerThreadImpl

public WorkerThreadImpl(ThreadGroup threadGroup,
                        Runnable runnable,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on DefaultThreadPool instance.

Parameters:
threadGroup - ThreadGroup
runnable - Runnable
initialByteBufferSize - initial ByteBuffer size

WorkerThreadImpl

public WorkerThreadImpl(DefaultThreadPool threadPool,
                        String name)
Create a Thread that will synchronizes/block on DefaultThreadPool instance.

Parameters:
threadPool - DefaultThreadPool
name - String

WorkerThreadImpl

public WorkerThreadImpl(DefaultThreadPool threadPool,
                        String name,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on DefaultThreadPool instance.

Parameters:
threadPool - DefaultThreadPool
name - String
initialByteBufferSize - initial ByteBuffer size

WorkerThreadImpl

public WorkerThreadImpl(DefaultThreadPool threadPool,
                        String name,
                        Runnable runnable,
                        int initialByteBufferSize)
Create a Thread that will synchronizes/block on DefaultThreadPool instance.

Parameters:
threadPool - DefaultThreadPool
name - String
initialByteBufferSize - initial ByteBuffer size
Method Detail

createByteBuffer

protected void createByteBuffer(boolean force)
Allocate a ByteBuffer if the current instance is null;


updateAttachment

public ThreadAttachment updateAttachment(int mode)
Description copied from class: WorkerThread
Updates Thread associated attachment according to the passed mode.

Specified by:
updateAttachment in class WorkerThread
Returns:
updated ThreadAttachment

getAttachment

public ThreadAttachment getAttachment()
Description copied from class: WorkerThread
Get the current set of attributes (state) associated with this instance. Unlike detach(), this method doesn't clear the WorkerThread attributes.

Specified by:
getAttachment in class WorkerThread
Returns:
the Thread associated ThreadAttachment

detach

public ThreadAttachment detach()
Description copied from class: WorkerThread
Detach the current set of attributes (state) associated with this instance. Method will re-create all the ByteBuffers associated with this thread.

Specified by:
detach in class WorkerThread
Returns:
a new ThreadAttachment

attach

public void attach(ThreadAttachment threadAttachment)
Description copied from class: WorkerThread
Attach the ThreadAttachment to this instance. This will configure this Thread attributes like ByteBuffer, SSLEngine, etc.

Specified by:
attach in class WorkerThread

getByteBufferType

public ByteBufferFactory.ByteBufferType getByteBufferType()
The ByteBufferType used to create the ByteBuffer associated with this object.

Returns:
The ByteBufferType used to create the ByteBuffer associated with this object.

setByteBufferType

public void setByteBufferType(ByteBufferFactory.ByteBufferType byteBufferType)
Set the ByteBufferType to use when creating the ByteBuffer associated with this object.

Parameters:
byteBufferType - The ByteBuffer type.

processTask

protected void processTask(Callable t)
                    throws Exception
Processes the given task.

Parameters:
t - the task to process
Throws:
Exception

reset

protected void reset()
Overrides:
reset in class WorkerThread


Copyright © 2008 SUN Microsystems. All Rights Reserved.