org.apache.tomcat.util.threads
Class ThreadWithAttributes

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 /' ").


Field Summary
static int MAX_NOTES
           
 
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, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setName, setPriority, 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

MAX_NOTES

public static int MAX_NOTES
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.



Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.