Import lttng.kernel.core plugins from Scope
[deliverable/tracecompass.git] / lttng / org.lttng.scope.lttng.kernel.core / src / org / lttng / scope / lttng / kernel / core / analysis / os / KernelAnalysisModule.java
CommitLineData
451ba2f7
AM
1/*******************************************************************************
2 * Copyright (c) 2013, 2015 École Polytechnique de Montréal
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Geneviève Bastien - Initial API and implementation
11 * Mathieu Rail - Provide the requirements of the analysis
12 *******************************************************************************/
13
14package org.lttng.scope.lttng.kernel.core.analysis.os;
15
16import static java.util.Objects.requireNonNull;
17import static org.lttng.scope.common.core.NonNullUtils.nullToEmptyString;
18
19import org.eclipse.jdt.annotation.NonNull;
20import org.eclipse.tracecompass.tmf.core.statesystem.ITmfStateProvider;
21import org.eclipse.tracecompass.tmf.core.statesystem.TmfStateSystemAnalysisModule;
22import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
23import org.lttng.scope.lttng.kernel.core.analysis.os.internal.KernelStateProvider;
24import org.lttng.scope.lttng.kernel.core.trace.IKernelTrace;
25import org.lttng.scope.lttng.kernel.core.trace.layout.ILttngKernelEventLayout;
26import org.lttng.scope.lttng.kernel.core.trace.layout.internal.LttngEventLayout;
27
28/**
29 * State System Module for lttng kernel traces
30 *
31 * @author Geneviève Bastien
32 */
33public class KernelAnalysisModule extends TmfStateSystemAnalysisModule {
34
35 /** The ID of this analysis module */
36 public static final String ID = "org.eclipse.tracecompass.analysis.os.linux.kernel"; //$NON-NLS-1$
37
38 @Override
39 protected @NonNull ITmfStateProvider createStateProvider() {
40 ITmfTrace trace = requireNonNull(getTrace());
41 ILttngKernelEventLayout layout;
42
43 if (trace instanceof IKernelTrace) {
44 layout = ((IKernelTrace) trace).getKernelEventLayout();
45 } else {
46 /* Fall-back to the base LttngEventLayout */
47 layout = LttngEventLayout.getInstance();
48 }
49
50 return new KernelStateProvider(trace, layout);
51 }
52
53 @Override
54 protected String getFullHelpText() {
55 return nullToEmptyString(Messages.LttngKernelAnalysisModule_Help);
56 }
57}
This page took 0.038172 seconds and 5 git commands to generate.