org.jacoco.core.runtime
Class RuntimeData

java.lang.Object
  extended by org.jacoco.core.runtime.RuntimeData

public class RuntimeData
extends Object

Container for runtime execution and meta data. All access to the runtime data is thread safe.


Field Summary
protected  ExecutionDataStore store
          store for execution data
 
Constructor Summary
RuntimeData()
          Creates a new runtime.
 
Method Summary
 void collect(IExecutionDataVisitor executionDataVisitor, ISessionInfoVisitor sessionInfoVisitor, boolean reset)
          Collects the current execution data and writes it to the given IExecutionDataVisitor object.
 boolean equals(Object args)
          In violation of the regular semantic of Object.equals(Object) this implementation is used as the interface to the execution data store.
static void generateAccessCall(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv)
          Generates the code that calls a RuntimeData instance through the JRE API method Object.equals(Object).
static void generateArgumentArray(long classid, String classname, int probecount, org.objectweb.asm.MethodVisitor mv)
          Generates code that creates the argument array for the getProbes(Object[]) method.
 ExecutionData getExecutionData(Long id, String name, int probecount)
          Returns the coverage data for the class with the given identifier.
 void getProbes(Object[] args)
          Retrieves the execution probe array for a given class.
 String getSessionId()
          Get the current a session identifier for this runtime.
 void reset()
          Resets all coverage information.
 void setSessionId(String id)
          Sets a session identifier for this runtime.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

store

protected final ExecutionDataStore store
store for execution data

Constructor Detail

RuntimeData

public RuntimeData()
Creates a new runtime.

Method Detail

setSessionId

public void setSessionId(String id)
Sets a session identifier for this runtime. The identifier is used when execution data is collected. If no identifier is explicitly set a identifier is generated from the host name and a random number. This method can be called at any time.

Parameters:
id - new session identifier
See Also:
collect(IExecutionDataVisitor, ISessionInfoVisitor, boolean)

getSessionId

public String getSessionId()
Get the current a session identifier for this runtime.

Returns:
current session identifier
See Also:
setSessionId(String)

collect

public final void collect(IExecutionDataVisitor executionDataVisitor,
                          ISessionInfoVisitor sessionInfoVisitor,
                          boolean reset)
Collects the current execution data and writes it to the given IExecutionDataVisitor object.

Parameters:
executionDataVisitor - handler to write coverage data to
sessionInfoVisitor - handler to write session information to
reset - if true the current coverage information is also cleared

reset

public final void reset()
Resets all coverage information.


getExecutionData

public ExecutionData getExecutionData(Long id,
                                      String name,
                                      int probecount)
Returns the coverage data for the class with the given identifier. If there is no data available under the given id a new entry is created. This is a synchronized access to the underlying store.

Parameters:
id - class identifier
name - VM name of the class
probecount - probe data length
Returns:
execution data

getProbes

public void getProbes(Object[] args)
Retrieves the execution probe array for a given class. The passed Object array instance is used for parameters and the return value as follows. Call parameters: Return value:

Parameters:
args - parameter array of length 3

equals

public boolean equals(Object args)
In violation of the regular semantic of Object.equals(Object) this implementation is used as the interface to the execution data store.

Overrides:
equals in class Object
Parameters:
args - the arguments as an Object array
Returns:
has no meaning

generateArgumentArray

public static void generateArgumentArray(long classid,
                                         String classname,
                                         int probecount,
                                         org.objectweb.asm.MethodVisitor mv)
Generates code that creates the argument array for the getProbes(Object[]) method. The array instance is left on the operand stack. The generated code requires a stack size of 5.

Parameters:
classid - class identifier
classname - VM class name
probecount - probe count for this class
mv - visitor to emit generated code

generateAccessCall

public static void generateAccessCall(long classid,
                                      String classname,
                                      int probecount,
                                      org.objectweb.asm.MethodVisitor mv)
Generates the code that calls a RuntimeData instance through the JRE API method Object.equals(Object). The code pops a Object instance from the stack and pushes the probe array of type boolean[] on the operand stack. The generated code requires a stack size of 6.

Parameters:
classid - class identifier
classname - VM class name
probecount - probe count for this class
mv - visitor to emit generated code


Copyright © 2009–2023 Mountainminds GmbH & Co. KG. All rights reserved.