diff --git a/doc/com.minres.scviewer.doc/pom.xml b/doc/com.minres.scviewer.doc/pom.xml
index 27d7d1a..312f53b 100644
--- a/doc/com.minres.scviewer.doc/pom.xml
+++ b/doc/com.minres.scviewer.doc/pom.xml
@@ -7,7 +7,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
diff --git a/features/com.minres.scviewer.database.feature/pom.xml b/features/com.minres.scviewer.database.feature/pom.xml
index 0cf5a2a..cd91068 100644
--- a/features/com.minres.scviewer.database.feature/pom.xml
+++ b/features/com.minres.scviewer.database.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
3.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.feature/pom.xml b/features/com.minres.scviewer.e4.feature/pom.xml
index 368c1a7..cfec10a 100644
--- a/features/com.minres.scviewer.e4.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
1.1.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.help.feature/pom.xml b/features/com.minres.scviewer.e4.help.feature/pom.xml
index 5d0c641..1192a6b 100644
--- a/features/com.minres.scviewer.e4.help.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.help.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
1.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.e4.platform.feature/pom.xml b/features/com.minres.scviewer.e4.platform.feature/pom.xml
index 6cc5df3..8fc5ccf 100644
--- a/features/com.minres.scviewer.e4.platform.feature/pom.xml
+++ b/features/com.minres.scviewer.e4.platform.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
1.0.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.feature/pom.xml b/features/com.minres.scviewer.feature/pom.xml
index 67f14a9..f7c89d0 100644
--- a/features/com.minres.scviewer.feature/pom.xml
+++ b/features/com.minres.scviewer.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
1.1.0-SNAPSHOT
diff --git a/features/com.minres.scviewer.ui.feature/pom.xml b/features/com.minres.scviewer.ui.feature/pom.xml
index f98fb1c..ced77a1 100644
--- a/features/com.minres.scviewer.ui.feature/pom.xml
+++ b/features/com.minres.scviewer.ui.feature/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
1.1.0-SNAPSHOT
diff --git a/plugins/com.minres.scviewer.database.ftr/pom.xml b/plugins/com.minres.scviewer.database.ftr/pom.xml
index b35f6b7..00217c0 100644
--- a/plugins/com.minres.scviewer.database.ftr/pom.xml
+++ b/plugins/com.minres.scviewer.database.ftr/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
index 7d97f91..deb6e30 100644
--- a/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
+++ b/plugins/com.minres.scviewer.database.ftr/src/com/minres/scviewer/database/ftr/FtrDbLoader.java
@@ -17,15 +17,13 @@ import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.TreeMap;
+import org.apache.commons.compress.compressors.lz4.BlockLZ4CompressorInputStream;
import org.eclipse.collections.impl.map.mutable.UnifiedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -42,7 +40,6 @@ import com.minres.scviewer.database.RelationType;
import com.minres.scviewer.database.RelationTypeFactory;
import com.minres.scviewer.database.tx.ITx;
import com.minres.scviewer.database.tx.ITxAttribute;
-import com.minres.scviewer.database.RelationType;
import jacob.CborDecoder;
import jacob.CborType;
@@ -202,9 +199,17 @@ public class FtrDbLoader implements IWaveformDbLoader {
try(FileInputStream fis = new FileInputStream(file)) {
FileChannel fc = fis.getChannel();
for (Long offset : fileOffsets) {
- fc.position(offset);
- CborDecoder parser = new CborDecoder(fis);
- ret.add(parser.readByteString());
+ if(offset>=0) {
+ fc.position(offset);
+ CborDecoder parser = new CborDecoder(fis);
+ ret.add(parser.readByteString());
+ } else {
+ fc.position(-offset);
+ CborDecoder parser = new CborDecoder(fis);
+ BlockLZ4CompressorInputStream decomp = new BlockLZ4CompressorInputStream(new ByteArrayInputStream(parser.readByteString()));
+ ret.add(decomp.readAllBytes());
+ decomp.close();
+ }
}
} catch (Exception e) {
LOG.error("Error parsing file "+file.getName(), e);
@@ -317,7 +322,11 @@ public class FtrDbLoader implements IWaveformDbLoader {
while(next != null && !break_type.isEqualType(next)) {
long tag = readTag();
switch((int)tag) {
+<<<<<<< HEAD
case 6: // info
+=======
+ case 6: { // info
+>>>>>>> refs/heads/release/2.17.1
CborDecoder cbd = new CborDecoder(new ByteArrayInputStream(readByteString()));
long sz = cbd.readArrayLength();
assert(sz==3);
@@ -328,14 +337,29 @@ public class FtrDbLoader implements IWaveformDbLoader {
assert(epoch_tag==1);
cbd.readInt(); // epoch
break;
+ }
case 8: { // dictionary uncompressed
parseDict(new CborDecoder(new ByteArrayInputStream(readByteString())));
break;
}
+ case 9: { // dictionary compressed
+ long sz = readArrayLength();
+ assert(sz==2);
+ readInt(); // uncompressed size
+ parseDict(new CborDecoder(new BlockLZ4CompressorInputStream(new ByteArrayInputStream(readByteString()))));
+ break;
+ }
case 10: { // directory uncompressed
parseDir(new CborDecoder(new ByteArrayInputStream(readByteString())));
break;
}
+ case 11: { // directory compressed
+ long sz = readArrayLength();
+ assert(sz==2);
+ readInt(); // uncompressed size
+ parseDir(new CborDecoder(new BlockLZ4CompressorInputStream(new ByteArrayInputStream(readByteString()))));
+ break;
+ }
case 12: { //tx chunk uncompressed
long len = readArrayLength();
assert(len==2);
@@ -345,10 +369,29 @@ public class FtrDbLoader implements IWaveformDbLoader {
parseTx(txStream, txStream.fileOffsets.size()-1, readByteString());
break;
}
+ case 13: { //tx chunk compressed
+ long len = readArrayLength();
+ assert(len==3);
+ long stream_id = readInt();
+ readInt(); // uncompressed size
+ TxStream txStream = loader.txStreams.get(stream_id);
+ txStream.fileOffsets.add(0-inputStream.getChannel().position());
+ BlockLZ4CompressorInputStream decomp = new BlockLZ4CompressorInputStream(new ByteArrayInputStream(readByteString()));
+ parseTx(txStream, txStream.fileOffsets.size()-1, decomp.readAllBytes());
+ decomp.close();
+ break;
+ }
case 14: { // relations uncompressed
parseRel(new CborDecoder(new ByteArrayInputStream(readByteString())));
break;
}
+ case 15: { // relations uncompressed
+ long sz = readArrayLength();
+ assert(sz==2);
+ readInt(); // uncompressed size
+ parseRel(new CborDecoder(new BlockLZ4CompressorInputStream(new ByteArrayInputStream(readByteString()))));
+ break;
+ }
}
next = peekType();
}
diff --git a/plugins/com.minres.scviewer.database.sqlite/pom.xml b/plugins/com.minres.scviewer.database.sqlite/pom.xml
index 38f7d5c..9c4ac8f 100644
--- a/plugins/com.minres.scviewer.database.sqlite/pom.xml
+++ b/plugins/com.minres.scviewer.database.sqlite/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.text/pom.xml b/plugins/com.minres.scviewer.database.text/pom.xml
index 645facd..81881c1 100644
--- a/plugins/com.minres.scviewer.database.text/pom.xml
+++ b/plugins/com.minres.scviewer.database.text/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database.ui.swt/pom.xml b/plugins/com.minres.scviewer.database.ui.swt/pom.xml
index c8c1553..806f54e 100644
--- a/plugins/com.minres.scviewer.database.ui.swt/pom.xml
+++ b/plugins/com.minres.scviewer.database.ui.swt/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
4.0.0-SNAPSHOT
diff --git a/plugins/com.minres.scviewer.database.vcd/pom.xml b/plugins/com.minres.scviewer.database.vcd/pom.xml
index 7fe350b..dae5ea0 100644
--- a/plugins/com.minres.scviewer.database.vcd/pom.xml
+++ b/plugins/com.minres.scviewer.database.vcd/pom.xml
@@ -5,7 +5,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.database/pom.xml b/plugins/com.minres.scviewer.database/pom.xml
index 593105a..ea83e1c 100644
--- a/plugins/com.minres.scviewer.database/pom.xml
+++ b/plugins/com.minres.scviewer.database/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
index 6e54435..10ffb53 100644
--- a/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.e4.application.help/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: SCViewer Help
Bundle-SymbolicName: com.minres.scviewer.e4.application.help;singleton:=true
-Bundle-Version: 2.17.0
+Bundle-Version: 2.17.1
Bundle-Vendor: MINRES Technologies GmbH
Automatic-Module-Name: com.minres.scviewer.e4.application.help
Bundle-RequiredExecutionEnvironment: JavaSE-11
diff --git a/plugins/com.minres.scviewer.e4.application.help/pom.xml b/plugins/com.minres.scviewer.e4.application.help/pom.xml
index c913303..fd8ce25 100644
--- a/plugins/com.minres.scviewer.e4.application.help/pom.xml
+++ b/plugins/com.minres.scviewer.e4.application.help/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
index b3c837d..f6fc855 100644
--- a/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
+++ b/plugins/com.minres.scviewer.e4.application/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: com.minres.scviewer.e4.application;singleton:=true
-Bundle-Version: 2.17.0
+Bundle-Version: 2.17.1
Bundle-Vendor: %Bundle-Vendor
Require-Bundle: javax.inject;bundle-version="1.0.0",
org.eclipse.core.runtime;bundle-version="3.11.1",
diff --git a/plugins/com.minres.scviewer.e4.application/pom.xml b/plugins/com.minres.scviewer.e4.application/pom.xml
index 673a2e5..e67949b 100644
--- a/plugins/com.minres.scviewer.e4.application/pom.xml
+++ b/plugins/com.minres.scviewer.e4.application/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/plugins/com.minres.scviewer.ui/pom.xml b/plugins/com.minres.scviewer.ui/pom.xml
index 33d8616..43bd5ae 100644
--- a/plugins/com.minres.scviewer.ui/pom.xml
+++ b/plugins/com.minres.scviewer.ui/pom.xml
@@ -4,7 +4,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-plugin
diff --git a/pom.xml b/pom.xml
index e5ce28d..aca5226 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
pom
releng/com.minres.scviewer.target
@@ -70,7 +70,7 @@
com.minres.scviewer
com.minres.scviewer.target
- 2.17.0
+ 2.17.1
org.eclipse.justj.openjdk.hotspot.jre.minimal-15
diff --git a/products/com.minres.scviewer.e4.product/pom.xml b/products/com.minres.scviewer.e4.product/pom.xml
index a9de28e..25b1ae1 100644
--- a/products/com.minres.scviewer.e4.product/pom.xml
+++ b/products/com.minres.scviewer.e4.product/pom.xml
@@ -6,11 +6,11 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
com.minres.scviewer.e4.product
- 2.17.0
+ 2.17.1
eclipse-repository
com.minres.scviewer
diff --git a/products/com.minres.scviewer.e4.product/scviewer.product b/products/com.minres.scviewer.e4.product/scviewer.product
index 237a44b..54f8e01 100644
--- a/products/com.minres.scviewer.e4.product/scviewer.product
+++ b/products/com.minres.scviewer.e4.product/scviewer.product
@@ -1,7 +1,7 @@
-
+
@@ -67,8 +67,8 @@
-
+
@@ -79,7 +79,7 @@
-
+
diff --git a/releng/com.minres.scviewer.target/pom.xml b/releng/com.minres.scviewer.target/pom.xml
index 62c3b58..542b45a 100644
--- a/releng/com.minres.scviewer.target/pom.xml
+++ b/releng/com.minres.scviewer.target/pom.xml
@@ -12,7 +12,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
diff --git a/releng/com.minres.scviewer.updateSite/pom.xml b/releng/com.minres.scviewer.updateSite/pom.xml
index 90e84a3..24cd8ec 100644
--- a/releng/com.minres.scviewer.updateSite/pom.xml
+++ b/releng/com.minres.scviewer.updateSite/pom.xml
@@ -7,7 +7,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
diff --git a/tests/com.minres.scviewer.database.test/inputs/my_db_c.ftr b/tests/com.minres.scviewer.database.test/inputs/my_db_c.ftr
new file mode 100644
index 0000000..c207da3
Binary files /dev/null and b/tests/com.minres.scviewer.database.test/inputs/my_db_c.ftr differ
diff --git a/tests/com.minres.scviewer.database.test/pom.xml b/tests/com.minres.scviewer.database.test/pom.xml
index 1d34b0a..d694c69 100644
--- a/tests/com.minres.scviewer.database.test/pom.xml
+++ b/tests/com.minres.scviewer.database.test/pom.xml
@@ -6,7 +6,7 @@
com.minres.scviewer
com.minres.scviewer.parent
- 2.17.0
+ 2.17.1
../..
eclipse-test-plugin
diff --git a/tests/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java b/tests/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java
index ef4f7ac..36d7b88 100644
--- a/tests/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java
+++ b/tests/com.minres.scviewer.database.test/src/com/minres/scviewer/database/test/DatabaseServicesTest.java
@@ -148,4 +148,38 @@ public class DatabaseServicesTest {
assertEquals(3, attr.size());
});
}
+ @Test
+ public void testCFtr() throws Exception {
+ File f = new File("inputs/my_db_c.ftr").getAbsoluteFile();
+ assertTrue(f.exists());
+ waveformDb.load(f);
+ assertNotNull(waveformDb);
+ List waveforms = waveformDb.getAllWaves();
+ assertEquals(8, waveforms.size());
+ assertEquals(1, waveformDb.getChildNodes().size());
+ for(IWaveform w:waveforms) {
+ if(w.getId()==1) {
+ assertEquals(2, w.getRowCount());
+ } else if(w.getId()==2l) {
+ assertEquals(1, w.getRowCount());
+ } else if(w.getId()==3l) {
+ assertEquals(1, w.getRowCount());
+ }
+ }
+ //waveforms.stream().filter(s -> s.getId()==1).collect(Collectors.toList());
+ waveforms.stream().filter(s -> s.getId()==1).forEach(s -> {
+ assertEquals(27, s.getEvents().size());
+ });
+ waveforms.stream().filter(s -> s.getId()==1).map(s -> s.getEventsAtTime(0)).forEach(el -> {
+ assertEquals(1, el.length);
+ IEvent evt = el[0];
+ assertTrue(evt instanceof ITxEvent);
+ ITx tx = ((ITxEvent)evt).getTransaction();
+ assertNotNull(tx);
+ assertEquals(0, tx.getBeginTime());
+ assertEquals(280000000, tx.getEndTime());
+ List attr = tx.getAttributes();
+ assertEquals(3, attr.size());
+ });
+ }
}