aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java
diff options
context:
space:
mode:
authorMarc R. Hoffmann <hoffmann@mountainminds.com>2009-09-11 10:43:00 +0000
committerMarc R. Hoffmann <hoffmann@mountainminds.com>2009-09-11 10:43:00 +0000
commit2624878dcb37d6286e189d81d866e2134a450c1e (patch)
treef55ea57e25ce26d63e25f3c0a3c5d3d208f9365b /org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java
parentcf5345ffa6a53f5c618b0d3118eadd4508222317 (diff)
downloadjacoco-2624878dcb37d6286e189d81d866e2134a450c1e.tar.gz
#27: Format version identifier in execution data encoding
Diffstat (limited to 'org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java')
-rw-r--r--org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java22
1 files changed, 20 insertions, 2 deletions
diff --git a/org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java b/org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java
index f6284ff6..98f0913b 100644
--- a/org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java
+++ b/org.jacoco.core/src/org/jacoco/core/data/ExecutionDataWriter.java
@@ -27,6 +27,15 @@ import java.io.OutputStream;
*/
public class ExecutionDataWriter implements IExecutionDataVisitor {
+ /** File format version, will be incremented for each incompatible change. */
+ public static final char FORMAT_VERSION = 0x1001;
+
+ /** Block identifier for file headers. */
+ public static final byte BLOCK_HEADER = 0x01;
+
+ /** Block identifier for execution data of a single class. */
+ public static final byte BLOCK_EXECUTIONDATA = 0x10;
+
private final DataOutput output;
/**
@@ -34,9 +43,11 @@ public class ExecutionDataWriter implements IExecutionDataVisitor {
*
* @param output
* data output to write execution data to
+ * @throws IOException
*/
- public ExecutionDataWriter(final DataOutput output) {
+ public ExecutionDataWriter(final DataOutput output) throws IOException {
this.output = output;
+ writeHeader();
}
/**
@@ -44,13 +55,20 @@ public class ExecutionDataWriter implements IExecutionDataVisitor {
*
* @param output
* binary stream to write execution data to
+ * @throws IOException
*/
- public ExecutionDataWriter(final OutputStream output) {
+ public ExecutionDataWriter(final OutputStream output) throws IOException {
this((DataOutput) new DataOutputStream(output));
}
+ private void writeHeader() throws IOException {
+ output.write(BLOCK_HEADER);
+ output.writeChar(FORMAT_VERSION);
+ }
+
public void visitClassExecution(final long id, final boolean[][] blockdata) {
try {
+ output.write(BLOCK_EXECUTIONDATA);
output.writeLong(id);
output.writeInt(blockdata.length);
for (final boolean[] m : blockdata) {