JProfiler API

com.jprofiler.api.agent.interceptor
Class ThreadLocalStack

java.lang.Object
  extended by com.jprofiler.api.agent.interceptor.ThreadLocalStack

public class ThreadLocalStack
extends java.lang.Object

A stack that saves objects in thread-local data structures. This utility class is important for cacluating payload timing where you need to save payload infos in the Interceptor#interceptionEnter(Object, String, String, Object[]) method and retrieve them in the Interceptor#interceptionExit(Object, String, String, Object) method of an interceptor.

To avoid expensive synchronization and conflicts between different threads, this thread-local stack is the best solution for storing payloads. Please see the interceptor sample for an example on how to use this class.


Constructor Summary
ThreadLocalStack()
           
 
Method Summary
 boolean isEmpty()
          Checks if the thread-local stack is empty.
 java.lang.Object pop()
          Pops an object from the thread-local stack.
 void push(java.lang.Object object)
          Pushes an object onto the thread-local stack.
 int size()
          Returns the number of objects currently on the thread-local stack.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreadLocalStack

public ThreadLocalStack()
Method Detail

push

public void push(java.lang.Object object)
Pushes an object onto the thread-local stack.

Parameters:
object - the object

pop

public java.lang.Object pop()
Pops an object from the thread-local stack.

Returns:
the object.

size

public int size()
Returns the number of objects currently on the thread-local stack.

Returns:
the number of objects

isEmpty

public boolean isEmpty()
Checks if the thread-local stack is empty.

Returns:
if the stack is empty or not

JProfiler API