segStore: Merge ISegment and ISegment2
authorGeneviève Bastien <gbastien+lttng@versatic.net>
Wed, 10 May 2017 14:50:17 +0000 (10:50 -0400)
committerGenevieve Bastien <gbastien+lttng@versatic.net>
Mon, 15 May 2017 13:40:55 +0000 (09:40 -0400)
This breaks the API of ISegment, but makes all segments serializable in
an on disk segment store backend.

Change-Id: I6282f695c5f20f78a7ac929f43a41fed8a7019e0
Signed-off-by: Geneviève Bastien <gbastien+lttng@versatic.net>
Reviewed-on: https://git.eclipse.org/r/96746
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Reviewed-by: Hudson CI
27 files changed:
analysis/org.eclipse.tracecompass.analysis.os.linux.core/META-INF/MANIFEST.MF
analysis/org.eclipse.tracecompass.analysis.timing.core.tests/META-INF/MANIFEST.MF
analysis/org.eclipse.tracecompass.analysis.timing.core/META-INF/MANIFEST.MF
analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/META-INF/MANIFEST.MF
analysis/org.eclipse.tracecompass.analysis.timing.ui.swtbot.tests/src/org/eclipse/tracecompass/analysis/timing/ui/swtbot/tests/table/SegmentTableTest.java
analysis/org.eclipse.tracecompass.analysis.timing.ui/META-INF/MANIFEST.MF
lttng/org.eclipse.tracecompass.lttng2.kernel.core.tests/META-INF/MANIFEST.MF
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/perf/org/eclipse/tracecompass/segmentstore/core/tests/perf/SegmentStoreBenchmark.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/perf/org/eclipse/tracecompass/segmentstore/core/tests/perf/SegmentStoreBigBenchmark.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/src/org/eclipse/tracecompass/segmentstore/core/tests/AbstractTestSegmentStore.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/src/org/eclipse/tracecompass/segmentstore/core/tests/htStore/SegmentHistoryTreeTest.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/src/org/eclipse/tracecompass/segmentstore/core/tests/htStore/SegmentTreeCoreNodeTest.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/src/org/eclipse/tracecompass/segmentstore/core/tests/htStore/SegmentTreeNodeTest.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/stubs/org/eclipse/tracecompass/segmentstore/core/tests/historytree/HistoryTreeSegmentStoreStub.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/stubs/org/eclipse/tracecompass/segmentstore/core/tests/historytree/SegmentHistoryTreeStub.java
statesystem/org.eclipse.tracecompass.segmentstore.core.tests/stubs/org/eclipse/tracecompass/segmentstore/core/tests/historytree/SegmentTreeNodeStub.java
statesystem/org.eclipse.tracecompass.segmentstore.core/META-INF/MANIFEST.MF
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/BasicSegment2.java [deleted file]
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/ISegment2.java [deleted file]
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/package-info.java [deleted file]
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/segmentstore/core/segmentHistoryTree/HistoryTreeSegmentStore.java
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/segmentstore/core/segmentHistoryTree/SegmentHistoryTree.java
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/segmentstore/core/segmentHistoryTree/SegmentTreeNode.java
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/BasicSegment.java
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/ISegment.java
statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/segmentstore/core/SegmentStoreFactory.java
tmf/org.eclipse.tracecompass.tmf.analysis.xml.core/META-INF/MANIFEST.MF

index 8aa91e6111067f423fd621e6d43f1f851bb106e5..a8cd95d03bf520c3df6e7ea606fadf12b7fc1967 100644 (file)
@@ -12,6 +12,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.tracecompass.common.core,
  org.eclipse.tracecompass.tmf.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.analysis.timing.core,
  org.eclipse.tracecompass.statesystem.core
index f00b3bb3d3bae82a0268c3524cfc091e60bbc5df..39d1011684c76c9585928390bc248c3f937115ce 100644 (file)
@@ -11,6 +11,7 @@ Require-Bundle: org.junit;bundle-version="4.0.0",
  org.eclipse.core.runtime,
  org.eclipse.tracecompass.common.core,
  org.eclipse.tracecompass.analysis.os.linux.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.tmf.core,
  org.eclipse.tracecompass.tmf.core.tests,
index 2f64ca05c9ffe5b6b8a544124b062905ac4d9254..eb18b07c135dd688966671dd6079b548bebe3481 100644 (file)
@@ -13,6 +13,7 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.core.resources,
  org.eclipse.tracecompass.common.core,
  org.eclipse.tracecompass.tmf.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core
 Export-Package: org.eclipse.tracecompass.analysis.timing.core.segmentstore,
  org.eclipse.tracecompass.analysis.timing.core.segmentstore.statistics,
index 7e30d19744b282abc63317fad7df53a84e4b4808..c332a0796f0a5b06461821c36173ab6c54b64237 100644 (file)
@@ -30,6 +30,7 @@ Require-Bundle: org.apache.log4j,
  org.junit,
  org.eclipse.tracecompass.analysis.timing.core.tests,
  org.eclipse.tracecompass.tmf.ui.tests,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.datastore.core
 Import-Package: com.google.common.collect,
index 235416737d0ca7bc9b4067e7ba92df78684531fa..73ec2d5499c5fba1943c73a31e2ccc271486e922 100644 (file)
@@ -46,7 +46,6 @@ import org.eclipse.tracecompass.analysis.timing.core.segmentstore.IAnalysisProgr
 import org.eclipse.tracecompass.analysis.timing.core.segmentstore.ISegmentStoreProvider;
 import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableView;
 import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
 import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
@@ -403,9 +402,9 @@ public class SegmentTableTest {
         Path segmentFile = Files.createTempFile("tmpSegStore", ".tmp");
         try {
             final int size = 1000000;
-            ISegmentStore<@NonNull BasicSegment2> fixture = SegmentStoreFactory.createOnDiskSegmentStore(segmentFile, BasicSegment2.BASIC_SEGMENT_READ_FACTORY);
+            ISegmentStore<@NonNull BasicSegment> fixture = SegmentStoreFactory.createOnDiskSegmentStore(segmentFile, BasicSegment.BASIC_SEGMENT_READ_FACTORY);
             for (int i = 0; i < size; i++) {
-                fixture.add(new BasicSegment2(i, 2 * i));
+                fixture.add(new BasicSegment(i, 2 * i));
             }
             assertNotNull(getTable());
             getTable().updateModel(fixture);
index bbf04ecb9184b1ed70dc66de86620601811c2d90..92374c108e1377cccc41b22ef5b7dc7f42b4f60b 100644 (file)
@@ -13,6 +13,7 @@ Require-Bundle: org.eclipse.ui,
  com.google.guava,
  org.eclipse.tracecompass.analysis.timing.core,
  org.eclipse.tracecompass.common.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.tmf.core,
  org.eclipse.tracecompass.tmf.ui,
index d08d7b8337c175cc4e174b50ac0bf15e84db7c63..291bfffc391c75b5f7365a3fbfb5de5b07d8ab65 100644 (file)
@@ -22,6 +22,7 @@ Require-Bundle: org.junit;bundle-version="4.0.0",
  org.eclipse.tracecompass.analysis.os.linux.core.tests,
  org.eclipse.tracecompass.analysis.graph.core,
  org.eclipse.tracecompass.analysis.timing.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core
 Export-Package: org.eclipse.tracecompass.lttng2.kernel.core.tests,
  org.eclipse.tracecompass.lttng2.kernel.core.tests.analysis.graph,
@@ -36,6 +37,8 @@ Export-Package: org.eclipse.tracecompass.lttng2.kernel.core.tests,
  org.eclipse.tracecompass.lttng2.kernel.core.tests.perf.analysis.tid,
  org.eclipse.tracecompass.lttng2.kernel.core.tests.perf.event.matching,
  org.eclipse.tracecompass.lttng2.kernel.core.tests.stubs,
+ org.eclipse.tracecompass.lttng2.kernel.core.tests.synchronization,
+ org.eclipse.tracecompass.lttng2.lttng.kernel.core.tests.shared,
  org.eclipse.tracecompass.lttng2.lttng.kernel.core.tests.shared.vm
 Import-Package: com.google.common.collect,
  org.eclipse.test.performance,
index 114e94474e37b0b91c4ee0940debb3292a104b8d..6930b9d4093c04b5c153243700f4eb52b66f7d6f 100644 (file)
@@ -23,10 +23,10 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.test.performance.Performance;
 import org.eclipse.test.performance.PerformanceMeter;
 import org.eclipse.tracecompass.common.core.NonNullUtils;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.arraylist.ArrayListStore;
 import org.eclipse.tracecompass.internal.segmentstore.core.arraylist.LazyArrayListStore;
 import org.eclipse.tracecompass.internal.segmentstore.core.treemap.TreeMapStore;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
 import org.eclipse.tracecompass.segmentstore.core.SegmentComparators;
@@ -57,7 +57,7 @@ public class SegmentStoreBenchmark {
     private static final int DEFAULT_SAMPLE = 1000;
     private static final int DEFAULT_LOOP_COUNT = 10;
 
-    private final ISegmentStore<@NonNull BasicSegment2> fSegStore;
+    private final ISegmentStore<@NonNull BasicSegment> fSegStore;
     private final String fName;
     private final Performance fPerf;
 
@@ -72,7 +72,7 @@ public class SegmentStoreBenchmark {
                 { "Array list store", new ArrayListStore<>() },
                 { "Lazy array list store", new LazyArrayListStore<>() },
                 { "Treemap store", new TreeMapStore<>() },
-                { "HT store", new HistoryTreeSegmentStoreStub<>(NonNullUtils.checkNotNull(Files.createTempFile("tmpSegStore", null)), 0, BasicSegment2.BASIC_SEGMENT_READ_FACTORY) },
+                { "HT store", new HistoryTreeSegmentStoreStub<>(NonNullUtils.checkNotNull(Files.createTempFile("tmpSegStore", null)), 0, BasicSegment.BASIC_SEGMENT_READ_FACTORY) },
         });
     }
 
@@ -84,7 +84,7 @@ public class SegmentStoreBenchmark {
      * @param segStore
      *            The segment store to fill for the benchmarks
      */
-    public SegmentStoreBenchmark(String name, ISegmentStore<@NonNull BasicSegment2> segStore) {
+    public SegmentStoreBenchmark(String name, ISegmentStore<@NonNull BasicSegment> segStore) {
         fSegStore = segStore;
         fName = name;
         fPerf = NonNullUtils.checkNotNull(Performance.getDefault());
@@ -244,9 +244,9 @@ public class SegmentStoreBenchmark {
         pMiterate2.commit();
     }
 
-    private static int iterate(Iterable<@NonNull BasicSegment2> store) {
+    private static int iterate(Iterable<@NonNull BasicSegment> store) {
         int count = 0;
-        Iterator<@NonNull BasicSegment2> iterator = store.iterator();
+        Iterator<@NonNull BasicSegment> iterator = store.iterator();
         while (iterator.hasNext()) {
             count++;
             iterator.next();
@@ -254,15 +254,15 @@ public class SegmentStoreBenchmark {
         return count;
     }
 
-    private static int sortedIterate(ISegmentStore<@NonNull BasicSegment2> store, Comparator<ISegment> order) {
-        Iterable<@NonNull BasicSegment2> iterable = store.iterator(order);
+    private static int sortedIterate(ISegmentStore<@NonNull BasicSegment> store, Comparator<ISegment> order) {
+        Iterable<@NonNull BasicSegment> iterable = store.iterator(order);
         return iterate(iterable);
     }
 
-    private static void populate(int size, int[] fuzz, ISegmentStore<@NonNull BasicSegment2> store, long low, long high) {
+    private static void populate(int size, int[] fuzz, ISegmentStore<@NonNull BasicSegment> store, long low, long high) {
         for (long i = low; i < high; i++) {
             long start = i + fuzz[(int) (i % size)];
-            store.add(new BasicSegment2(start, start + 10));
+            store.add(new BasicSegment(start, start + 10));
         }
     }
 }
\ No newline at end of file
index a70cb083114b19b87996bfefc9c501d711095053..06b917b97fdf1b447882f4360c0b2cf092c0ac24 100644 (file)
@@ -15,7 +15,7 @@ import java.util.Arrays;
 
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
 import org.eclipse.tracecompass.segmentstore.core.tests.historytree.HistoryTreeSegmentStoreStub;
 import org.junit.runners.Parameterized.Parameters;
@@ -36,7 +36,7 @@ public class SegmentStoreBigBenchmark extends SegmentStoreBenchmark {
      * @param segStore
      *            The segment store to use
      */
-    public SegmentStoreBigBenchmark(String name, ISegmentStore<@NonNull BasicSegment2> segStore) {
+    public SegmentStoreBigBenchmark(String name, ISegmentStore<@NonNull BasicSegment> segStore) {
         super(name, segStore);
     }
 
@@ -48,7 +48,7 @@ public class SegmentStoreBigBenchmark extends SegmentStoreBenchmark {
     @Parameters(name = "{index}: {0}")
     public static Iterable<Object[]> getParameters() throws IOException {
         return Arrays.asList(new Object[][] {
-                { "HT store", new HistoryTreeSegmentStoreStub<>(Files.createTempFile("tmpSegStore", null), 1, BasicSegment2.BASIC_SEGMENT_READ_FACTORY) },
+                { "HT store", new HistoryTreeSegmentStoreStub<>(Files.createTempFile("tmpSegStore", null), 1, BasicSegment.BASIC_SEGMENT_READ_FACTORY) },
         });
     }
 
index cb97a813db1f74c897ce1c6209f78282b76c1913..5e173957a598564661f36f0c908c769007f8beb2 100644 (file)
@@ -28,7 +28,6 @@ import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
 import org.eclipse.tracecompass.datastore.core.serialization.ISafeByteBufferWriter;
 import org.eclipse.tracecompass.datastore.core.serialization.SafeByteBufferFactory;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
@@ -90,7 +89,7 @@ public abstract class AbstractTestSegmentStore {
      *
      * @author Geneviève Bastien
      */
-    protected static final class TestSegment implements ISegment2 {
+    protected static final class TestSegment implements ISegment {
 
         /**
          * The reader for this class
index a7e9ffc0290da9f59cd69fb9ff8439fc23b5403e..c8bf6960b60817c14b5ed0c64c1fb1cf81c66ce8 100644 (file)
@@ -24,9 +24,9 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.AbstractHistoryTree;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.overlapping.AbstractOverlappingHistoryTreeTestBase;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentHistoryTree;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentTreeNode;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.tests.historytree.SegmentHistoryTreeStub;
 import org.junit.Test;
 
@@ -39,34 +39,34 @@ import com.google.common.collect.Iterators;
  * @author Geneviève Bastien
  */
 @NonNullByDefault
-public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBase<BasicSegment2, SegmentTreeNode<BasicSegment2>> {
+public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBase<BasicSegment, SegmentTreeNode<BasicSegment>> {
 
-    private static final BasicSegment2 DEFAULT_OBJECT = new BasicSegment2(0, 0);
+    private static final BasicSegment DEFAULT_OBJECT = new BasicSegment(0, 0);
 
     @Override
-    protected SegmentHistoryTreeStub<BasicSegment2> createHistoryTree(@NonNull File stateHistoryFile, int blockSize, int maxChildren, int providerVersion, long treeStart)
+    protected SegmentHistoryTreeStub<BasicSegment> createHistoryTree(@NonNull File stateHistoryFile, int blockSize, int maxChildren, int providerVersion, long treeStart)
             throws IOException {
         return new SegmentHistoryTreeStub<>(stateHistoryFile,
                 blockSize,
                 maxChildren,
                 providerVersion,
                 treeStart,
-                BasicSegment2.BASIC_SEGMENT_READ_FACTORY);
+                BasicSegment.BASIC_SEGMENT_READ_FACTORY);
     }
 
     @Override
-    protected SegmentHistoryTreeStub<BasicSegment2> createHistoryTree(@NonNull File existingStateFile, int expectedProviderVersion) throws IOException {
+    protected SegmentHistoryTreeStub<BasicSegment> createHistoryTree(@NonNull File existingStateFile, int expectedProviderVersion) throws IOException {
         return new SegmentHistoryTreeStub<>(existingStateFile, expectedProviderVersion,
-                BasicSegment2.BASIC_SEGMENT_READ_FACTORY);
+                BasicSegment.BASIC_SEGMENT_READ_FACTORY);
     }
 
     @Override
-    protected BasicSegment2 createInterval(long start, long end) {
-        return new BasicSegment2(start, end);
+    protected BasicSegment createInterval(long start, long end) {
+        return new BasicSegment(start, end);
     }
 
     @Override
-    protected long fillValues(@NonNull AbstractHistoryTree<@NonNull BasicSegment2, SegmentTreeNode<@NonNull BasicSegment2>> ht, int fillSize, long start) {
+    protected long fillValues(@NonNull AbstractHistoryTree<@NonNull BasicSegment, SegmentTreeNode<@NonNull BasicSegment>> ht, int fillSize, long start) {
         int nbValues = fillSize / DEFAULT_OBJECT.getSizeOnDisk();
         for (int i = 0; i < nbValues; i++) {
             ht.insert(createInterval(start + i, start + i + 1));
@@ -80,7 +80,7 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
     @Test
     public void testIsEmpty() {
         long start = 10L;
-        SegmentHistoryTreeStub<BasicSegment2> oht = (SegmentHistoryTreeStub<BasicSegment2>) setupSmallTree(3, start);
+        SegmentHistoryTreeStub<BasicSegment> oht = (SegmentHistoryTreeStub<BasicSegment>) setupSmallTree(3, start);
 
         assertTrue(oht.isEmpty());
 
@@ -89,7 +89,7 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
         assertFalse(oht.isEmpty());
 
         /* Fill a first node */
-        SegmentTreeNode<BasicSegment2> node = oht.getLatestLeaf();
+        SegmentTreeNode<BasicSegment> node = oht.getLatestLeaf();
         long time = fillValues(oht, node.getNodeFreeSpace(), start);
 
         /*
@@ -109,7 +109,7 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
     @Test
     public void testSizeAndIterator() throws IOException {
         long start = 10L;
-        SegmentHistoryTreeStub<BasicSegment2> oht = (SegmentHistoryTreeStub<BasicSegment2>) setupSmallTree(3, start);
+        SegmentHistoryTreeStub<BasicSegment> oht = (SegmentHistoryTreeStub<BasicSegment>) setupSmallTree(3, start);
 
         int nbSegments = 0;
         assertEquals(nbSegments, oht.size());
@@ -120,7 +120,7 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
         assertEquals(nbSegments, oht.size());
 
         /* Fill a first node */
-        SegmentTreeNode<BasicSegment2> node = oht.getLatestLeaf();
+        SegmentTreeNode<BasicSegment> node = oht.getLatestLeaf();
         nbSegments += node.getNodeFreeSpace() / DEFAULT_OBJECT.getSizeOnDisk();
         long time = fillValues(oht, node.getNodeFreeSpace(), start);
         assertEquals(nbSegments, oht.size());
@@ -149,24 +149,24 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
         oht.closeTree(oht.getTreeEnd());
 
         // Create a reader history tree
-        oht = (SegmentHistoryTreeStub<BasicSegment2>) createHistoryTreeReader();
+        oht = (SegmentHistoryTreeStub<BasicSegment>) createHistoryTreeReader();
         assertEquals(nbSegments, oht.size());
 
         // Test the iterator on that tree
-        Iterator<BasicSegment2> iterator = oht.iterator();
+        Iterator<BasicSegment> iterator = oht.iterator();
         assertNotNull(iterator);
         int count = Iterators.size(iterator);
         assertEquals(nbSegments, count);
 
         // Test the intersecting elements
-        Iterable<BasicSegment2> intersectingElements = oht.getIntersectingElements(start, time);
+        Iterable<BasicSegment> intersectingElements = oht.getIntersectingElements(start, time);
         count = 0;
         // While doing this iterator, count the number of segments of a smaller
         // time range, it will be needed later
         long rangeStart = (long) (start + (time - start) * 0.4);
         long rangeEnd = (long) (time - (time - start) * 0.4);
         int nbInRange = 0;
-        for (BasicSegment2 segment : intersectingElements) {
+        for (BasicSegment segment : intersectingElements) {
             count++;
             if (segment.getStart() <= rangeEnd && rangeStart <= segment.getEnd()) {
                 nbInRange++;
@@ -179,22 +179,22 @@ public class SegmentHistoryTreeTest extends AbstractOverlappingHistoryTreeTestBa
         assertEquals(nbInRange, count);
 
         // Test intersecting elements with start time ordering
-        Comparator<BasicSegment2> cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment2::getStart));
+        Comparator<BasicSegment> cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment::getStart));
         assertSortedIteration(oht, rangeStart, rangeEnd, cmp, nbInRange);
 
         // Test intersecting elements with end time ordering
-        cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment2::getEnd));
+        cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment::getEnd));
         assertSortedIteration(oht, rangeStart, rangeEnd, cmp, nbInRange);
 
         // Test intersecting elements with duration ordering
-        cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment2::getLength));
+        cmp = NonNullUtils.checkNotNull(Comparator.comparing(BasicSegment::getLength));
         assertSortedIteration(oht, rangeStart, rangeEnd, cmp, nbInRange);
     }
 
-    private static void assertSortedIteration(SegmentHistoryTreeStub<@NonNull BasicSegment2> oht, long rangeStart, long rangeEnd, Comparator<@NonNull BasicSegment2> cmp, int nbInRange) {
+    private static void assertSortedIteration(SegmentHistoryTreeStub<@NonNull BasicSegment> oht, long rangeStart, long rangeEnd, Comparator<@NonNull BasicSegment> cmp, int nbInRange) {
         int count = 0;
-        BasicSegment2 prev = DEFAULT_OBJECT;
-        for (BasicSegment2 segment : oht.getIntersectingElements(rangeStart, rangeEnd, cmp)) {
+        BasicSegment prev = DEFAULT_OBJECT;
+        for (BasicSegment segment : oht.getIntersectingElements(rangeStart, rangeEnd, cmp)) {
             count++;
             assertTrue("Segment comparison at " + count, cmp.compare(prev, segment) <= 0);
         }
index 86004407c9ca3fef2639ca968786b12d66c9b565..9c7e4a360d7fdd68604ef995564c3e14a2c0ce6b 100644 (file)
@@ -22,8 +22,8 @@ import org.eclipse.tracecompass.internal.provisional.datastore.core.condition.Ti
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.AbstractHistoryTree.IHTNodeFactory;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTCoreNodeTest;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTNode;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentTreeNode;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.tests.historytree.SegmentTreeNodeStub;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,12 +40,12 @@ import com.google.common.collect.ImmutableSet;
  */
 @NonNullByDefault
 @RunWith(Parameterized.class)
-public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, SegmentTreeNodeStub> {
+public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment, SegmentTreeNodeStub> {
 
     /**
      * A factory to create base objects for test
      */
-    private static final ObjectFactory<BasicSegment2> BASE_SEGMENT_FACTORY = (s, e) -> new BasicSegment2(s, e);
+    private static final ObjectFactory<BasicSegment> BASE_SEGMENT_FACTORY = (s, e) -> new BasicSegment(s, e);
 
     /**
      * Constructor
@@ -65,9 +65,9 @@ public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, Segme
      */
     public SegmentTreeCoreNodeTest(String name,
             int headerSize,
-            IHTNodeFactory<BasicSegment2, SegmentTreeNodeStub> factory,
-            IHTIntervalReader<BasicSegment2> objReader,
-            ObjectFactory<BasicSegment2> objFactory) throws IOException {
+            IHTNodeFactory<BasicSegment, SegmentTreeNodeStub> factory,
+            IHTIntervalReader<BasicSegment> objReader,
+            ObjectFactory<BasicSegment> objFactory) throws IOException {
         super(name, headerSize, factory, objReader, objFactory);
     }
 
@@ -80,7 +80,7 @@ public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, Segme
                 { "Segment tree core node",
                     HTNode.COMMON_HEADER_SIZE + Integer.BYTES + Integer.BYTES * NB_CHILDREN + 6 * Long.BYTES * NB_CHILDREN,
                     SegmentTreeNodeStub.NODE_FACTORY,
-                    BasicSegment2.BASIC_SEGMENT_READ_FACTORY,
+                    BasicSegment.BASIC_SEGMENT_READ_FACTORY,
                     BASE_SEGMENT_FACTORY },
         });
     }
@@ -102,7 +102,7 @@ public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, Segme
         assertEquals(0, stub.getLongest());
 
         // Add a new element and verify the data
-        BasicSegment2 segment = new BasicSegment2(start, start + shortLen);
+        BasicSegment segment = new BasicSegment(start, start + shortLen);
         stub.add(segment);
         assertEquals(start, stub.getMaxStart());
         assertEquals(start + shortLen, stub.getMinEnd());
@@ -111,7 +111,7 @@ public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, Segme
 
         // Add a new element and verify the data: longest length and max start
         // should be updated
-        segment = new BasicSegment2(start + shortLen, start + longLen);
+        segment = new BasicSegment(start + shortLen, start + longLen);
         stub.add(segment);
         assertEquals(start + shortLen, stub.getMaxStart());
         assertEquals(start + shortLen, stub.getMinEnd());
@@ -142,9 +142,9 @@ public class SegmentTreeCoreNodeTest extends HTCoreNodeTest<BasicSegment2, Segme
         assertEquals(0, parentStub.getLongest(0));
 
         // Add a few segments to the child and verify its own data
-        BasicSegment2 segment = new BasicSegment2(start, start + shortLen);
+        BasicSegment segment = new BasicSegment(start, start + shortLen);
         stub.add(segment);
-        segment = new BasicSegment2(start + shortLen, start + longLen);
+        segment = new BasicSegment(start + shortLen, start + longLen);
         stub.add(segment);
 
         assertEquals(start + shortLen, stub.getMaxStart());
index bbad948a460aca0241a518deaef8e8aea2479176..afaebcc98e93beed1a0738d9836b8deae593fb7b 100644 (file)
@@ -17,7 +17,7 @@ import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTNode;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTNodeTest;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.tests.historytree.SegmentTreeNodeStub;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -31,12 +31,12 @@ import org.junit.runners.Parameterized.Parameters;
  */
 @NonNullByDefault
 @RunWith(Parameterized.class)
-public class SegmentTreeNodeTest extends HTNodeTest<BasicSegment2, SegmentTreeNodeStub> {
+public class SegmentTreeNodeTest extends HTNodeTest<BasicSegment, SegmentTreeNodeStub> {
 
     /**
      * A factory to create base objects for test
      */
-    private static final ObjectFactory<BasicSegment2> BASE_SEGMENT_FACTORY = (s, e) -> new BasicSegment2(s, e);
+    private static final ObjectFactory<BasicSegment> BASE_SEGMENT_FACTORY = (s, e) -> new BasicSegment(s, e);
 
     /**
      * Constructor
@@ -56,9 +56,9 @@ public class SegmentTreeNodeTest extends HTNodeTest<BasicSegment2, SegmentTreeNo
      */
     public SegmentTreeNodeTest(String name,
             int headerSize,
-            IHTNodeFactory<BasicSegment2, SegmentTreeNodeStub> factory,
-            IHTIntervalReader<BasicSegment2> objReader,
-            ObjectFactory<BasicSegment2> objFactory) throws IOException {
+            IHTNodeFactory<BasicSegment, SegmentTreeNodeStub> factory,
+            IHTIntervalReader<BasicSegment> objReader,
+            ObjectFactory<BasicSegment> objFactory) throws IOException {
         super(name, headerSize, factory, objReader, objFactory);
     }
 
@@ -71,7 +71,7 @@ public class SegmentTreeNodeTest extends HTNodeTest<BasicSegment2, SegmentTreeNo
                 { "Segment tree node",
                         HTNode.COMMON_HEADER_SIZE,
                         SegmentTreeNodeStub.NODE_FACTORY,
-                        BasicSegment2.BASIC_SEGMENT_READ_FACTORY,
+                        BasicSegment.BASIC_SEGMENT_READ_FACTORY,
                         BASE_SEGMENT_FACTORY
                 },
         });
index c6cfdff17337954c6689f03e533bb0ec3d2961fc..96ffebfc2ecd338a7caa826daaefb94c911e3ee8 100644 (file)
@@ -13,8 +13,8 @@ import java.io.IOException;
 import java.nio.file.Path;
 
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.HistoryTreeSegmentStore;
+import org.eclipse.tracecompass.segmentstore.core.ISegment;
 
 /**
  * Base stub class, that resolves the node type of the tree to the stub node
@@ -24,7 +24,7 @@ import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.Hi
  * @param <E>
  *            The type of segments accepted in this store
  */
-public class HistoryTreeSegmentStoreStub<E extends ISegment2> extends HistoryTreeSegmentStore<E> {
+public class HistoryTreeSegmentStoreStub<E extends ISegment> extends HistoryTreeSegmentStore<E> {
 
     /**
      * Constructor for new history files. Use this when creating a new history
index 03fe45ed68af622895c3730c6cfea27e88038101..96b7679336b3e8305d5e3ef8577752d925f9e10c 100644 (file)
@@ -14,9 +14,9 @@ import java.io.IOException;
 
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.IHistoryTree;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentHistoryTree;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentTreeNode;
+import org.eclipse.tracecompass.segmentstore.core.ISegment;
 
 /**
  * A stub segment history tree that extends the base segment history tree and
@@ -26,7 +26,7 @@ import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.Se
  * @param <E>
  *            The type of segments that goes in this tree
  */
-public class SegmentHistoryTreeStub<E extends ISegment2> extends SegmentHistoryTree<E> {
+public class SegmentHistoryTreeStub<E extends ISegment> extends SegmentHistoryTree<E> {
 
     private int fLastInsertionIndex;
 
index df0c9abaec371554cdc7dc95ad38e37297b48409..27a8265c6fd0a7fb0a909d851b8143d152720e2f 100644 (file)
@@ -10,8 +10,8 @@
 package org.eclipse.tracecompass.segmentstore.core.tests.historytree;
 
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.AbstractHistoryTree.IHTNodeFactory;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.SegmentTreeNode;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 
 /**
  * A stub segment tree node to expose some functionalities of the segment tree
@@ -19,10 +19,10 @@ import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.Se
  *
  * @author Geneviève Bastien
  */
-public class SegmentTreeNodeStub extends SegmentTreeNode<BasicSegment2> {
+public class SegmentTreeNodeStub extends SegmentTreeNode<BasicSegment> {
 
     /** Factory to create nodes of this type */
-    public static final IHTNodeFactory<BasicSegment2, SegmentTreeNodeStub> NODE_FACTORY =
+    public static final IHTNodeFactory<BasicSegment, SegmentTreeNodeStub> NODE_FACTORY =
             (t, b, m, seq, p, start) -> new SegmentTreeNodeStub(t, b, m, seq, p, start);
 
     /**
index 0553e1868a02cfdd8dcdc61df55f696f69f244a4..10fb9d000f75aff567bf78f8c0b2c996f3f0e7df 100644 (file)
@@ -12,8 +12,7 @@ Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.core.resources,
  org.eclipse.tracecompass.common.core,
  org.eclipse.tracecompass.datastore.core
-Export-Package: org.eclipse.tracecompass.internal.provisional.segmentstore.core;x-friends:="org.eclipse.tracecompass.segmentstore.core.tests",
- org.eclipse.tracecompass.internal.segmentstore.core;x-internal:=true,
+Export-Package: org.eclipse.tracecompass.internal.segmentstore.core;x-internal:=true,
  org.eclipse.tracecompass.internal.segmentstore.core.arraylist;x-friends:="org.eclipse.tracecompass.segmentstore.core.tests",
  org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree;x-friends:="org.eclipse.tracecompass.segmentstore.core.tests",
  org.eclipse.tracecompass.internal.segmentstore.core.treemap;x-friends:="org.eclipse.tracecompass.segmentstore.core.tests",
diff --git a/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/BasicSegment2.java b/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/BasicSegment2.java
deleted file mode 100644 (file)
index ccaaca1..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.provisional.segmentstore.core;
-
-import org.eclipse.tracecompass.datastore.core.interval.HTInterval;
-import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
-
-/**
- * Extension of the BasicSegment, to implement ISegment2 so that it can be
- * stored in a history tree backend.
- *
- * @since 1.2
- */
-public class BasicSegment2 extends HTInterval implements ISegment2 {
-
-    /**
-     * The factory to read an object from a buffer
-     */
-    public static final IHTIntervalReader<BasicSegment2> BASIC_SEGMENT_READ_FACTORY = buffer -> {
-            return new BasicSegment2(buffer.getLong(), buffer.getLong());
-    };
-
-    /**
-     * Constructor
-     *
-     * @param start
-     *            start of the segment
-     * @param end
-     *            end of the segment
-     */
-    public BasicSegment2(long start, long end) {
-        super(start, end);
-    }
-
-    /**
-     *
-     */
-    private static final long serialVersionUID = -3083730702354275357L;
-
-}
diff --git a/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/ISegment2.java b/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/ISegment2.java
deleted file mode 100644 (file)
index 57af196..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2016 École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-
-package org.eclipse.tracecompass.internal.provisional.segmentstore.core;
-
-import org.eclipse.tracecompass.datastore.core.interval.IHTInterval;
-import org.eclipse.tracecompass.segmentstore.core.ISegment;
-
-/**
- * This is a segment that can be saved in a history tree backend
- *
- * Note: It should be ISegment, but that would be API breaking, so this
- * interface was added so a segment can be both segment and history tree object.
- *
- * FIXME: Move that to ISegment when breaking the API
- *
- * @author Geneviève Bastien
- * @since 1.2
- */
-public interface ISegment2 extends ISegment, IHTInterval {
-
-}
diff --git a/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/package-info.java b/statesystem/org.eclipse.tracecompass.segmentstore.core/src/org/eclipse/tracecompass/internal/provisional/segmentstore/core/package-info.java
deleted file mode 100644 (file)
index 79f786c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2017 École Polytechnique de Montréal
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-
-@org.eclipse.jdt.annotation.NonNullByDefault
-package org.eclipse.tracecompass.internal.provisional.segmentstore.core;
index b523644db80fd5c2a380addfb90511a6a068d5d9..428f23238ba71bf86b1d0492f90f63d6a4065cfe 100644 (file)
@@ -21,7 +21,6 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.common.core.NonNullUtils;
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
 
@@ -39,9 +38,9 @@ import com.google.common.collect.Iterables;
  * @author Loic Prieur-Drevon
  * @author Geneviève Bastien
  * @param <E>
- *            type of {@link ISegment2}
+ *            type of {@link ISegment}
  */
-public class HistoryTreeSegmentStore<E extends ISegment2> implements ISegmentStore<E> {
+public class HistoryTreeSegmentStore<E extends ISegment> implements ISegmentStore<E> {
 
     private static final int PROVIDER_VERSION = 1;
     // TODO: these values were taken from the state system implementation. Maybe
index 9729f64f788ae473ee5c8bfabfef1e5207773fe0..41e32375cede6f0fb76f1db5cf69ec3171e22e7c 100644 (file)
@@ -28,7 +28,6 @@ import org.eclipse.tracecompass.internal.provisional.datastore.core.condition.Ti
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTNode;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.IHTNode;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.overlapping.AbstractOverlappingHistoryTree;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.Activator;
 import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
 import org.eclipse.tracecompass.segmentstore.core.ISegment;
@@ -44,7 +43,7 @@ import com.google.common.annotations.VisibleForTesting;
  * @param <E>
  *            type of {@link ISegment}
  */
-public class SegmentHistoryTree<E extends ISegment2> extends AbstractOverlappingHistoryTree<E, SegmentTreeNode<E>> {
+public class SegmentHistoryTree<E extends ISegment> extends AbstractOverlappingHistoryTree<E, SegmentTreeNode<E>> {
 
     private static final int HISTORY_MAGIC_NUMBER = 0x05FFC600;
 
index 8d01d72702bba073ea6a8438abab3bc9f7eacd94..9c3e80e20995b30596b1bc08549b9f7e30e34e5a 100644 (file)
@@ -21,8 +21,8 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.condition.TimeRangeCondition;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.IHTNode;
 import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.overlapping.OverlappingNode;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.BasicSegment2;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
+import org.eclipse.tracecompass.segmentstore.core.BasicSegment;
+import org.eclipse.tracecompass.segmentstore.core.ISegment;
 import org.eclipse.tracecompass.segmentstore.core.SegmentComparators;
 
 /**
@@ -34,9 +34,9 @@ import org.eclipse.tracecompass.segmentstore.core.SegmentComparators;
  * @author Loic Prieur-Drevon
  * @author Geneviève Bastien
  * @param <E>
- *            type of {@link ISegment2}
+ *            type of {@link ISegment}
  */
-public class SegmentTreeNode<E extends ISegment2> extends OverlappingNode<E> {
+public class SegmentTreeNode<E extends ISegment> extends OverlappingNode<E> {
 
     // These values represent the values for the current node only, not its
     // children
@@ -70,9 +70,9 @@ public class SegmentTreeNode<E extends ISegment2> extends OverlappingNode<E> {
      * Adds the data concerning the segment nodes, max start/min end and
      * durations
      *
-     * @param <E>  type of {@link ISegment2}
+     * @param <E>  type of {@link ISegment}
      */
-    protected static class OverlappingSegmentCoreData<E extends ISegment2> extends OverlappingExtraData {
+    protected static class OverlappingSegmentCoreData<E extends ISegment> extends OverlappingExtraData {
 
         // These values cover the full subtrees of the child nodes
         // Max start of an interval
@@ -305,22 +305,22 @@ public class SegmentTreeNode<E extends ISegment2> extends OverlappingNode<E> {
          * @return A segment whose value for the field that correspond to the
          *         comparator is the least value of the child node
          */
-        public ISegment2 getIndex(int index, Comparator<E> order) {
+        public ISegment getIndex(int index, Comparator<E> order) {
             if (order.equals(SegmentComparators.INTERVAL_START_COMPARATOR)) {
-                return new BasicSegment2(getChildStart(index), getChildStart(index));
+                return new BasicSegment(getChildStart(index), getChildStart(index));
             } else if (order.equals(SegmentComparators.INTERVAL_START_COMPARATOR.reversed())) {
-                return new BasicSegment2(fChildMaxStart[index], fChildMaxStart[index]);
+                return new BasicSegment(fChildMaxStart[index], fChildMaxStart[index]);
             } else if (order.equals(SegmentComparators.INTERVAL_END_COMPARATOR)) {
-                return new BasicSegment2(fChildMinEnd[index], fChildMinEnd[index]);
+                return new BasicSegment(fChildMinEnd[index], fChildMinEnd[index]);
             } else if (order.equals(SegmentComparators.INTERVAL_END_COMPARATOR.reversed())) {
-                return new BasicSegment2(getChildEnd(index), getChildEnd(index));
+                return new BasicSegment(getChildEnd(index), getChildEnd(index));
             } else if (order.equals(SegmentComparators.INTERVAL_LENGTH_COMPARATOR)) {
-                return new BasicSegment2(0, fMinLength[index]);
+                return new BasicSegment(0, fMinLength[index]);
             } else if (order.equals(SegmentComparators.INTERVAL_LENGTH_COMPARATOR.reversed())) {
-                return new BasicSegment2(0, fMaxLength[index]);
+                return new BasicSegment(0, fMaxLength[index]);
             }
             // TODO: Don't know what to do with other comparators yet
-            return new BasicSegment2(getChild(index), getChild(index));
+            return new BasicSegment(getChild(index), getChild(index));
         }
 
     }
@@ -395,10 +395,10 @@ public class SegmentTreeNode<E extends ISegment2> extends OverlappingNode<E> {
      * @return For each intersecting child, a Tuple with the segment with the
      *         least value for the comparator
      */
-    public Set<Tuple<ISegment2>> selectNextChildren(TimeRangeCondition range, Comparator<E> order) {
+    public Set<Tuple<ISegment>> selectNextChildren(TimeRangeCondition range, Comparator<E> order) {
         OverlappingSegmentCoreData<E> extraData = getCoreNodeData();
         if (extraData != null) {
-            Set<Tuple<ISegment2>> set = new HashSet<>();
+            Set<Tuple<ISegment>> set = new HashSet<>();
             for (Integer index : extraData.selectNextIndices(range)) {
                 set.add(new Tuple<>(extraData.getIndex(index, order), extraData.getChild(index)));
             }
index b1e686904390e4d8f922c3cdbce9590d94fcb01d..9ddc85c705bd12b0dfca1c8722a7d1fdef8d4edf 100644 (file)
@@ -9,6 +9,10 @@
 
 package org.eclipse.tracecompass.segmentstore.core;
 
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
+import org.eclipse.tracecompass.datastore.core.serialization.ISafeByteBufferWriter;
+
 /**
  * Basic implementation of {@link ISegment}.
  *
@@ -16,6 +20,14 @@ package org.eclipse.tracecompass.segmentstore.core;
  */
 public class BasicSegment implements ISegment {
 
+    /**
+     * The factory to read an object from a buffer
+     * @since 2.0
+     */
+    public static final IHTIntervalReader<BasicSegment> BASIC_SEGMENT_READ_FACTORY = buffer -> {
+            return new BasicSegment(buffer.getLong(), buffer.getLong());
+    };
+
     private static final long serialVersionUID = -3257452887960883177L;
 
     private final long fStart;
@@ -49,8 +61,27 @@ public class BasicSegment implements ISegment {
         return fEnd;
     }
 
+    /**
+     * @since 2.0
+     */
+    @Override
+    public int getSizeOnDisk() {
+        // Save the start and end time
+        return Long.BYTES * 2;
+    }
+
+    /**
+     * @since 2.0
+     */
+    @Override
+    public void writeSegment(@NonNull ISafeByteBufferWriter buffer) {
+        buffer.putLong(getStart());
+        buffer.putLong(getEnd());
+    }
+
     @Override
     public String toString() {
         return new String('[' + String.valueOf(fStart) + ", " + String.valueOf(fEnd) + ']'); //$NON-NLS-1$
     }
+
 }
index eff096573ab314292ec92bfd0ffd3e5259d6285c..60a80eda9f88bdbf0cc68a0af32550b345393cc7 100644 (file)
@@ -15,6 +15,8 @@ package org.eclipse.tracecompass.segmentstore.core;
 import java.io.Serializable;
 
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.datastore.core.interval.IHTInterval;
+import org.eclipse.tracecompass.datastore.core.serialization.ISafeByteBufferWriter;
 
 /**
  * Generic interface for any segment (like a time range) that can be used in the
@@ -22,21 +24,7 @@ import org.eclipse.jdt.annotation.NonNull;
  *
  * @author Alexandre Montplaisir
  */
-public interface ISegment extends Serializable, Comparable<@NonNull ISegment> {
-
-    /**
-     * The start position/time of the segment.
-     *
-     * @return The start position
-     */
-    long getStart();
-
-    /**
-     * The end position/time of the segment
-     *
-     * @return The end position
-     */
-    long getEnd();
+public interface ISegment extends Serializable, Comparable<@NonNull ISegment>, IHTInterval {
 
     @Override
     default int compareTo(@NonNull ISegment arg0) {
@@ -53,4 +41,21 @@ public interface ISegment extends Serializable, Comparable<@NonNull ISegment> {
     default long getLength() {
         return getEnd() - getStart();
     }
+
+    /**
+     * @since 2.0
+     */
+    @Override
+    default int getSizeOnDisk() {
+        return 0;
+    }
+
+    /**
+     * @since 2.0
+     */
+    @Override
+    default void writeSegment(@NonNull ISafeByteBufferWriter buffer) {
+
+    }
+
 }
index 0c7bd2fb8729018a6e3f9a0735fa3086bbb0d732..5a2d1ea7fe199457fc7845684d1082176bbf7392 100644 (file)
@@ -20,7 +20,6 @@ import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.eclipse.tracecompass.datastore.core.interval.IHTIntervalReader;
-import org.eclipse.tracecompass.internal.provisional.segmentstore.core.ISegment2;
 import org.eclipse.tracecompass.internal.segmentstore.core.arraylist.ArrayListStore;
 import org.eclipse.tracecompass.internal.segmentstore.core.arraylist.LazyArrayListStore;
 import org.eclipse.tracecompass.internal.segmentstore.core.segmentHistoryTree.HistoryTreeSegmentStore;
@@ -131,7 +130,7 @@ public final class SegmentStoreFactory<E> {
      *             Exceptions when creating the segment store
      * @since 2.0
      */
-    public static <E extends ISegment2> ISegmentStore<E> createOnDiskSegmentStore(Path segmentFile, IHTIntervalReader<E> segmentReader) throws IOException {
+    public static <E extends ISegment> ISegmentStore<E> createOnDiskSegmentStore(Path segmentFile, IHTIntervalReader<E> segmentReader) throws IOException {
         return new HistoryTreeSegmentStore<>(segmentFile, segmentReader);
     }
 
index 45cdf4251669db7d47eaefdd35b70dcf6178b29b..eee55f403f9e13eea264c23593cc290ae8ee52cb 100644 (file)
@@ -11,6 +11,7 @@ Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.tracecompass.common.core,
  org.eclipse.tracecompass.tmf.core,
+ org.eclipse.tracecompass.datastore.core,
  org.eclipse.tracecompass.segmentstore.core,
  org.eclipse.tracecompass.analysis.timing.core
 Export-Package: org.eclipse.tracecompass.internal.tmf.analysis.xml.core;x-friends:="org.eclipse.tracecompass.tmf.analysis.xml.core.tests",
This page took 0.044404 seconds and 5 git commands to generate.