com.sun.btrace.api
Class BTraceTask

java.lang.Object
  extended by com.sun.btrace.api.BTraceTask

public abstract class BTraceTask
extends java.lang.Object

This class represents a single BTrace script

An instance of BTraceTask bound to a certain process can be obtained by calling

 BTraceEngine.sharedInstance().createTask(PID)
 

Author:
Jaroslav Bachorik

Nested Class Summary
static class BTraceTask.MessageDispatcher
          CommandListener interface exposes the BTrace commands received over the wire to anyone interested
static class BTraceTask.State
          This enum represents the allowed states of the tracing task
static interface BTraceTask.StateListener
          Simple state listener interface
 
Constructor Summary
BTraceTask()
           
 
Method Summary
abstract  void addMessageDispatcher(BTraceTask.MessageDispatcher dispatcher)
           
abstract  void addStateListener(BTraceTask.StateListener listener)
          Listener management (can use WeakListeners to create a new listener)
abstract  java.lang.String getClassPath()
           
abstract  int getInstrClasses()
          The number of classes the task needs to instruments
abstract  java.lang.String getName()
          Returns the name specified in BTrace annotation
abstract  java.util.Set<java.lang.String> getNamedEvents()
          A list of named events
abstract  int getPid()
           
abstract  java.lang.String getScript()
          Property getter
abstract  boolean hasAnonymousEvents()
          A flag indicating that the task has some anonymous events assigned
abstract  boolean hasEvents()
          Flag property getter
abstract  boolean isUnsafe()
          Checks whether the task requires to be run in BTrace Unsafe mode
abstract  void removeMessageDispatcher(BTraceTask.MessageDispatcher dispatcher)
           
abstract  void removeStateListener(BTraceTask.StateListener listener)
          Listener management
abstract  void sendEvent()
          Sends an anonymous event to the script server side
abstract  void sendEvent(java.lang.String event)
          Sends a named event to the script server side
abstract  void setScript(java.lang.String newValue)
          Property setter
abstract  void start()
          Starts the injected code
abstract  void stop()
          Stops the injected code
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BTraceTask

public BTraceTask()
Method Detail

addStateListener

public abstract void addStateListener(BTraceTask.StateListener listener)
Listener management (can use WeakListeners to create a new listener)

Parameters:
listener - BTraceTask.StateListener instance to add

removeStateListener

public abstract void removeStateListener(BTraceTask.StateListener listener)
Listener management

Parameters:
listener - BTraceTask.StateListener instance to remove

addMessageDispatcher

public abstract void addMessageDispatcher(BTraceTask.MessageDispatcher dispatcher)

removeMessageDispatcher

public abstract void removeMessageDispatcher(BTraceTask.MessageDispatcher dispatcher)

start

public abstract void start()
Starts the injected code


stop

public abstract void stop()
Stops the injected code


getPid

public abstract int getPid()

getScript

public abstract java.lang.String getScript()
Property getter

Returns:
Returns the script source code

getName

public abstract java.lang.String getName()
Returns the name specified in BTrace annotation

Returns:
Returns the name specified in BTrace annotation or NULL if not specified

setScript

public abstract void setScript(java.lang.String newValue)
Property setter

Parameters:
newValue - The script source code to be used

getClassPath

public abstract java.lang.String getClassPath()
Returns:
Returns the complete classpath for the task

isUnsafe

public abstract boolean isUnsafe()
Checks whether the task requires to be run in BTrace Unsafe mode

Returns:
Returns true if the BTrace task requires to be run in BTrace Unsafe mode

sendEvent

public abstract void sendEvent(java.lang.String event)
Sends a named event to the script server side

Parameters:
event - The event to send

sendEvent

public abstract void sendEvent()
Sends an anonymous event to the script server side


getNamedEvents

public abstract java.util.Set<java.lang.String> getNamedEvents()
A list of named events

Returns:
Returns the list of all named events defined in the script

hasAnonymousEvents

public abstract boolean hasAnonymousEvents()
A flag indicating that the task has some anonymous events assigned

Returns:
Returns TRUE if there are any anonymous events defined

hasEvents

public abstract boolean hasEvents()
Flag property getter

Returns:
Returns true if the script has defined at least one @OnEvent probe

getInstrClasses

public abstract int getInstrClasses()
The number of classes the task needs to instruments

Returns:
Returns the number of classes the task needs to instrument