+/*******************************************************************************
+ * Copyright (c) 2016 Ericsson
+ *
+ * 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.analysis.timing.core.segmentstore;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.tracecompass.segmentstore.core.ISegment;
+import org.eclipse.tracecompass.segmentstore.core.ISegmentStore;
+import org.eclipse.tracecompass.tmf.core.segment.ISegmentAspect;
+
+/**
+ * Segment store provider. Useful to populate views.
+ *
+ * @author Matthew Khouzam
+ * @since 2.0
+ */
+public interface ISegmentStoreProvider {
+
+ /**
+ * Add a listener for the viewers
+ *
+ * @param listener
+ * listener for each type of viewer
+ */
+ void addListener(IAnalysisProgressListener listener);
+
+ /**
+ * Remove listener for the viewers
+ *
+ * @param listener
+ * listener for each type of viewer
+ */
+ void removeListener(IAnalysisProgressListener listener);
+
+ /**
+ * Return the pre-defined set of segment aspects exposed by this analysis.
+ *
+ * It should not be null, but could be empty.
+ *
+ * @return The segment aspects for this analysis
+ */
+ Iterable<ISegmentAspect> getSegmentAspects();
+
+ /**
+ * Returns the result in a from the analysis in a ISegmentStore
+ *
+ * @return Results from the analysis in a ISegmentStore
+ */
+ @Nullable ISegmentStore<ISegment> getSegmentStore();
+
+}
\ No newline at end of file