org.jacoco.core.data

## Class ExecutionDataReader

- java.lang.Object
- - org.jacoco.core.data.ExecutionDataReader

Direct Known Subclasses:
  RemoteControlReader

    public class ExecutionDataReader
    extends Object

Deserialization of execution data from binary streams.

### Field Summary

Fields
`protected CompactDataInput` `in` Underlying data input

### Constructor Summary

Constructors
Constructor and Description
`ExecutionDataReader(InputStream input)` Creates a new reader based on the given input stream input.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `read()` Reads all data and reports it to the corresponding visitors.
`protected boolean` `readBlock(byte blocktype)` Reads a block of data identified by the given id.
`void` `setExecutionDataVisitor(IExecutionDataVisitor visitor)` Sets an listener for execution data.
`void` `setSessionInfoVisitor(ISessionInfoVisitor visitor)` Sets an listener for session information.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### in

    protected final CompactDataInput in

Underlying data input

### Constructor Detail

#### ExecutionDataReader

    public ExecutionDataReader(InputStream input)

Creates a new reader based on the given input stream input. Depending on the nature of the underlying stream input should be buffered as most data is read in single bytes.

Parameters:
  `input` - input stream to read execution data from

### Method Detail

#### setSessionInfoVisitor

    public void setSessionInfoVisitor(ISessionInfoVisitor visitor)

Sets an listener for session information.

Parameters:
  `visitor` - visitor to retrieve session info events

#### setExecutionDataVisitor

    public void setExecutionDataVisitor(IExecutionDataVisitor visitor)

Sets an listener for execution data.

Parameters:
  `visitor` - visitor to retrieve execution data events

#### read

    public boolean read()
                 throws IOException,
                        IncompatibleExecDataVersionException

Reads all data and reports it to the corresponding visitors. The stream is read until its end or a command confirmation has been sent.

Returns:
  `true` if additional data can be expected after a command has been executed. `false` if the end of the stream has been reached.
Throws:
  `IOException` - might be thrown by the underlying input stream
  `IncompatibleExecDataVersionException` - incompatible data version from different JaCoCo release

#### readBlock

    protected boolean readBlock(byte blocktype)
                         throws IOException

Reads a block of data identified by the given id. Subclasses may overwrite this method to support additional block types.

Parameters:
  `blocktype` - block type
Returns:
  `true` if there are more blocks to read
Throws:
  `IOException` - might be thrown by the underlying input stream