From d4792e9262c29182aa1da9b484178a14b4963070 Mon Sep 17 00:00:00 2001 From: Matthew Khouzam Date: Sat, 17 Sep 2016 23:54:44 -0400 Subject: [PATCH] ss: add a wrapper for the state system delete files This removes the need for the backend to be stored in the analysis Change-Id: I32f4b1ceb99e4babf5ffe7e25731318ad8faa976 Signed-off-by: Matthew Khouzam Reviewed-on: https://git.eclipse.org/r/81298 Reviewed-by: Genevieve Bastien Reviewed-by: Hudson CI Reviewed-by: Alexandre Montplaisir --- .../META-INF/MANIFEST.MF | 2 +- .../internal/statesystem/core/StateSystem.java | 5 +++++ .../core/ITmfStateSystemBuilder.java | 17 +++++++++++++++++ .../TmfStateSystemAnalysisModule.java | 12 +++--------- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/META-INF/MANIFEST.MF b/statesystem/org.eclipse.tracecompass.statesystem.core/META-INF/MANIFEST.MF index 12476fe886..36b4ebb4f3 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/META-INF/MANIFEST.MF +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor -Bundle-Version: 2.0.1.qualifier +Bundle-Version: 2.1.0.qualifier Bundle-Localization: plugin Bundle-SymbolicName: org.eclipse.tracecompass.statesystem.core;singleton:=true Bundle-Activator: org.eclipse.tracecompass.internal.statesystem.core.Activator diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/StateSystem.java b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/StateSystem.java index eabedb5bce..81b7feada9 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/StateSystem.java +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/internal/statesystem/core/StateSystem.java @@ -602,6 +602,11 @@ public class StateSystem implements ITmfStateSystemBuilder { return ret; } + @Override + public void removeFiles() { + backend.removeFiles(); + } + //-------------------------------------------------------------------------- // Debug methods //-------------------------------------------------------------------------- diff --git a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/statesystem/core/ITmfStateSystemBuilder.java b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/statesystem/core/ITmfStateSystemBuilder.java index 70ee130859..817a6f2da9 100644 --- a/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/statesystem/core/ITmfStateSystemBuilder.java +++ b/statesystem/org.eclipse.tracecompass.statesystem.core/src/org/eclipse/tracecompass/statesystem/core/ITmfStateSystemBuilder.java @@ -235,4 +235,21 @@ public interface ITmfStateSystemBuilder extends ITmfStateSystem { * know how to handle it. */ void closeHistory(long endTime); + + /** + * Delete any generated files or anything that might have been created by + * the history backend (either temporary or save files). By calling this, we + * return to the state as it was before ever building the history. + * + * You might not want to call automatically if, for example, you want an + * index file to persist on disk. This could be limited to actions + * originating from the user. + * + * FIXME Change to abstract for 3.0 + * + * @since 2.1 + */ + default void removeFiles() { + // FIXME Change to abstract for 3.0 + } } diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java index 9b2c3fb6dd..dfc25c7f94 100644 --- a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java +++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/statesystem/TmfStateSystemAnalysisModule.java @@ -67,7 +67,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo private final Object fRequestSyncObj = new Object(); private @Nullable ITmfStateSystemBuilder fStateSystem; - private @Nullable IStateHistoryBackend fHtBackend; private @Nullable ITmfEventRequest fRequest; private @Nullable TmfTimeRange fTimeRange = null; @@ -301,7 +300,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo try { IStateHistoryBackend backend = StateHistoryBackendFactory.createHistoryTreeBackendExistingFile( id, htFile, version); - fHtBackend = backend; fStateSystem = StateSystemFactory.newStateSystem(backend, false); analysisReady(true); return; @@ -320,7 +318,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo try { IStateHistoryBackend backend = StateHistoryBackendFactory.createHistoryTreeBackendNewFile( id, htFile, provider.getVersion(), provider.getStartTime(), QUEUE_SIZE); - fHtBackend = backend; fStateSystem = StateSystemFactory.newStateSystem(backend); provider.assignTargetStateSystem(fStateSystem); build(provider); @@ -401,7 +398,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo provider.assignTargetStateSystem(realSS); /* 7 */ - fHtBackend = partialBackend; fStateSystem = realSS; build(provider); @@ -414,7 +410,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo */ private void createNullHistory(String id, ITmfStateProvider provider) { IStateHistoryBackend backend = StateHistoryBackendFactory.createNullBackend(id); - fHtBackend = backend; fStateSystem = StateSystemFactory.newStateSystem(backend); provider.assignTargetStateSystem(fStateSystem); build(provider); @@ -427,7 +422,6 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo */ private void createInMemoryHistory(String id, ITmfStateProvider provider) { IStateHistoryBackend backend = StateHistoryBackendFactory.createInMemoryBackend(id, provider.getStartTime()); - fHtBackend = backend; fStateSystem = StateSystemFactory.newStateSystem(backend); provider.assignTargetStateSystem(fStateSystem); build(provider); @@ -439,13 +433,13 @@ public abstract class TmfStateSystemAnalysisModule extends TmfAbstractAnalysisMo provider.dispose(); } fStateProvider = null; - if (deleteFiles && (fHtBackend != null)) { - fHtBackend.removeFiles(); + if (deleteFiles && (fStateSystem != null)) { + fStateSystem.removeFiles(); } } private void build(ITmfStateProvider provider) { - if ((fStateSystem == null) || (fHtBackend == null)) { + if (fStateSystem == null) { throw new IllegalArgumentException(); } -- 2.34.1