Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.tomcat.util.threads
Class ThreadWithAttributes  view ThreadWithAttributes download ThreadWithAttributes.java

java.lang.Object
  extended byjava.lang.Thread
      extended byorg.apache.tomcat.util.threads.ThreadWithAttributes
All Implemented Interfaces:
java.lang.Runnable

public class ThreadWithAttributes
extends java.lang.Thread

Special thread that allows storing of attributes and notes. A guard is used to prevent untrusted code from accessing the attributes. This avoids hash lookups and provide something very similar with ThreadLocal ( but compatible with JDK1.1 and faster on JDK < 1.4 ). The main use is to store 'state' for monitoring ( like "processing request 'GET /' ").


Nested Class Summary
 
Nested classes inherited from class java.lang.Thread
java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  java.util.Hashtable attributes
           
private  java.lang.Object control
           
private  java.lang.String currentStage
           
static int MAX_NOTES
           
private  java.lang.Object[] notes
           
private  java.lang.Object param
           
private  java.lang.Object[] thData
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ThreadWithAttributes(java.lang.Object control, java.lang.Runnable r)
           
 
Method Summary
 java.util.Hashtable getAttributes(java.lang.Object control)
          Generic attributes.
 java.lang.String getCurrentStage(java.lang.Object control)
          Information about the curent performed operation
 java.lang.Object getNote(java.lang.Object control, int id)
           
 java.lang.Object getParam(java.lang.Object control)
          Information about the current request ( or the main object we are processing )
 java.lang.Object[] getThreadData(java.lang.Object control)
           
 void setCurrentStage(java.lang.Object control, java.lang.String currentStage)
           
 void setNote(java.lang.Object control, int id, java.lang.Object value)
          Notes - for attributes that need fast access ( array ) The application is responsible for id management
 void setParam(java.lang.Object control, java.lang.Object param)
           
 void setThreadData(java.lang.Object control, java.lang.Object[] thData)
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, 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

control

private java.lang.Object control

MAX_NOTES

public static int MAX_NOTES

notes

private java.lang.Object[] notes

attributes

private java.util.Hashtable attributes

currentStage

private java.lang.String currentStage

param

private java.lang.Object param

thData

private java.lang.Object[] thData
Constructor Detail

ThreadWithAttributes

public ThreadWithAttributes(java.lang.Object control,
                            java.lang.Runnable r)
Method Detail

getThreadData

public final java.lang.Object[] getThreadData(java.lang.Object control)

setThreadData

public final void setThreadData(java.lang.Object control,
                                java.lang.Object[] thData)

setNote

public final void setNote(java.lang.Object control,
                          int id,
                          java.lang.Object value)
Notes - for attributes that need fast access ( array ) The application is responsible for id management


getCurrentStage

public final java.lang.String getCurrentStage(java.lang.Object control)
Information about the curent performed operation


getParam

public final java.lang.Object getParam(java.lang.Object control)
Information about the current request ( or the main object we are processing )


setCurrentStage

public final void setCurrentStage(java.lang.Object control,
                                  java.lang.String currentStage)

setParam

public final void setParam(java.lang.Object control,
                           java.lang.Object param)

getNote

public final java.lang.Object getNote(java.lang.Object control,
                                      int id)

getAttributes

public final java.util.Hashtable getAttributes(java.lang.Object control)
Generic attributes. You'll need a hashtable lookup - you can use notes for array access.