/*******************************************************************************
* Copyright (c) 2015 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:
* Alexandre Montplaisir - Initial API and implementation
******************************************************************************/
package org.eclipse.tracecompass.analysis.os.linux.core.trace;
import org.eclipse.core.resources.IFile;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.tmf.core.filter.ITmfFilter;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimeRange;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.core.trace.TmfTraceContext;
/**
* Trace type that represents a Linux kernel trace.
*
* Any trace implementing the interface should be able to run the different
* Linux kernel analyses in this plugin.
*
* @author Alexandre Montplaisir
*/
public interface IKernelTrace extends ITmfTrace {
/**
* Get the event layout of this trace. Many known concepts from the Linux
* kernel may be exported under different names, depending on the tracer.
*
* @return The event layout
*/
IKernelAnalysisEventLayout getKernelEventLayout();
/** @since 2.0 */
@Override
default TmfTraceContext createTraceContext(TmfTimeRange selection, TmfTimeRange windowRange, @Nullable IFile editorFile, @Nullable ITmfFilter filter) {
return new LinuxTraceContext(selection, windowRange, editorFile, filter, this);
}
}