/******************************************************************************* * Copyright (c) 2015, 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 * * Contributors: * Patrick Tasse - Initial API and implementation *******************************************************************************/ package org.eclipse.tracecompass.tmf.ui.widgets.timegraph.model; import java.util.List; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.jdt.annotation.NonNull; /** * Interface to an object which is capable of providing marker events. * * @since 2.0 */ public interface IMarkerEventSource { /** * Gets the list of marker categories that this object provides. * * @return The list of marker categories */ @NonNull List<@NonNull String> getMarkerCategories(); /** * Gets the list of marker events of a specific category that intersect the * given time range (inclusively). * <p> * The list should also include the nearest previous and next markers that * do not intersect the time range. * * @param category * The marker category * @param startTime * Start of the time range * @param endTime * End of the time range * @param resolution * The resolution * @param monitor * The progress monitor object * @return The list of marker events */ @NonNull List<@NonNull IMarkerEvent> getMarkerList(@NonNull String category, long startTime, long endTime, long resolution, @NonNull IProgressMonitor monitor); }