> getEventAspects() {
+ return fRos2TraceAspects;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * This implementation sets the confidence to 101 if the trace contains at
+ * least one ros2:* event. The confidence is incremented for every other
+ * event from the layout present in the trace.
+ */
+ @Override
+ public IStatus validate(final IProject project, final String path) {
+ IStatus status = super.validate(project, path);
+ if (status instanceof CtfTraceValidationStatus) {
+ Collection eventNames = ((CtfTraceValidationStatus) status).getEventNames();
+ /**
+ * Make sure the trace contains an event from the ros2 tracepoint
+ * provider.
+ */
+ if (eventNames.stream().noneMatch(event -> event.startsWith(IRos2EventLayout.PROVIDER_NAME))) {
+ return new Status(IStatus.ERROR, Activator.PLUGIN_ID, "The trace is not a ROS 2 trace."); //$NON-NLS-1$
+ }
+ // Increment confidence for each other event that is present
+ int conf = CONFIDENCE;
+ conf += eventNames.stream().filter(eventName -> getLayout().getEventNames().contains(eventName)).count();
+ return new TraceValidationStatus(conf, Activator.PLUGIN_ID);
+ }
+ return status;
+ }
+}
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/IRos2EventLayout.java b/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/IRos2EventLayout.java
new file mode 100644
index 00000000..7a4bc8af
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/IRos2EventLayout.java
@@ -0,0 +1,289 @@
+/**********************************************************************
+ * Copyright (c) 2022 École Polytechnique de Montréal
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+
+package org.eclipse.tracecompass.incubator.internal.ros2.core.trace.layout;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Objects;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+/**
+ * This interface represents the events layout as defined in ros2_tracing.
+ *
+ * This could eventually support different versions of ROS 2 in case they have
+ * different event definitions.
+ *
+ * @author Christophe Bedard
+ */
+@SuppressWarnings("javadoc")
+@NonNullByDefault
+public interface IRos2EventLayout {
+
+ public static String PROVIDER_NAME = "ros2:"; //$NON-NLS-1$
+ public static String DDS_PROVIDER_NAME = "dds:"; //$NON-NLS-1$
+
+ /**
+ * The default layout
+ *
+ * @return the default layout
+ */
+ public static IRos2EventLayout getDefault() {
+ return Ros2RollingEventLayout.getInstance();
+ }
+
+ /**
+ * Get all event names defined here
+ *
+ * @return the event names
+ */
+ public default Collection getEventNames() {
+ Collection eventNames = Lists.newArrayList();
+ Iterables.filter(Arrays.asList(IRos2EventLayout.class.getMethods()),
+ method -> method.getName().startsWith("event")) //$NON-NLS-1$
+ .forEach(eventMethod -> {
+ try {
+ eventNames.add(Objects.requireNonNull((String) eventMethod.invoke(this)));
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ // Do nothing
+ }
+ });
+ return ImmutableList.copyOf(Objects.requireNonNull(eventNames));
+ }
+
+ // ------------------------------------------------------------------------
+ // Events
+ // ------------------------------------------------------------------------
+
+ /**
+ * rcl_init
+ */
+ String eventRclInit();
+
+ /**
+ * rcl_node_init
+ */
+ String eventRclNodeInit();
+
+ /**
+ * rmw_publisher_init
+ */
+ String eventRmwPublisherInit();
+
+ /**
+ * rcl_publisher_init
+ */
+ String eventRclPublisherInit();
+
+ /**
+ * rclcpp_publish
+ */
+ String eventRclcppPublish();
+
+ /**
+ * rcl_publish
+ */
+ String eventRclPublish();
+
+ /**
+ * rmw_publish
+ */
+ String eventRmwPublish();
+
+ /**
+ * rmw_subscription_init
+ */
+ String eventRmwSubscriptionInit();
+
+ /**
+ * rcl_subscription_init
+ */
+ String eventRclSubscriptionInit();
+
+ /**
+ * rclcpp_subscription_init
+ */
+ String eventRclcppSubscriptionInit();
+
+ /**
+ * rclcpp_subscription_callback_added
+ */
+ String eventRclcppSubscriptionCallbackAdded();
+
+ /**
+ * rmw_take
+ */
+ String eventRmwTake();
+
+ /**
+ * rcl_take
+ */
+ String eventRclTake();
+
+ /**
+ * rclcpp_take
+ */
+ String eventRclcppTake();
+
+ /**
+ * rcl_service_init
+ */
+ String eventRclServiceInit();
+
+ /**
+ * rclcpp_service_callback_added
+ */
+ String eventRclcppServiceCallbackAdded();
+
+ /**
+ * rcl_client_init
+ */
+ String eventRclClientInit();
+
+ /**
+ * rcl_timer_init
+ */
+ String eventRclTimerInit();
+
+ /**
+ * rclcpp_timer_callback_added
+ */
+ String eventRclcppTimerCallbackAdded();
+
+ /**
+ * rclcpp_timer_link_node
+ */
+ String eventRclcppTimerLinkNode();
+
+ /**
+ * rclcpp_callback_register
+ */
+ String eventRclcppCallbackRegister();
+
+ /**
+ * callback_start
+ */
+ String eventCallbackStart();
+
+ /**
+ * callback_end
+ */
+ String eventCallbackEnd();
+
+ /**
+ * rcl_lifecycle_state_machine_init
+ */
+ String eventRclLifecycleStateMachineInit();
+
+ /**
+ * rcl_lifecycle_transition
+ */
+ String eventRclLifecycleTransition();
+
+ /**
+ * rclcpp_executor_get_next_ready
+ */
+ String eventRclcppExecutorGetNextReady();
+
+ /**
+ * rclcpp_executor_wait_for_work
+ */
+ String eventRclcppExecutorWaitForWork();
+
+ /**
+ * rclcpp_executor_execute
+ */
+ String eventRclcppExecutorExecute();
+
+ // DDS
+
+ /**
+ * dds:create_writer
+ */
+ String eventDdsCreateWriter();
+
+ /**
+ * dds:write_pre
+ */
+ String eventDdsWritePre();
+
+ /**
+ * dds:write
+ */
+ String eventDdsWrite();
+
+ /**
+ * dds:create_reader
+ */
+ String eventDdsCreateReader();
+
+ /**
+ * dds:read
+ */
+ String eventDdsRead();
+
+ // ------------------------------------------------------------------------
+ // Fields
+ // ------------------------------------------------------------------------
+
+ String fieldContextHandle();
+ String fieldVersion();
+ String fieldNodeHandle();
+ String fieldRmwHandle();
+ String fieldNodeName();
+ String fieldNamespace();
+ String fieldRmwPublisherHandle();
+ String fieldGid();
+ String fieldPublisherHandle();
+ String fieldTopicName();
+ String fieldQueueDepth();
+ String fieldMessage();
+ String fieldRmwSubscriptionHandle();
+ String fieldSubscriptionHandle();
+ String fieldSubscription();
+ String fieldCallback();
+ String fieldSourceTimestamp();
+ String fieldTaken();
+ String fieldServiceHandle();
+ String fieldRmwServiceHandle();
+ String fieldServiceName();
+ String fieldClientHandle();
+ String fieldRmwClientHandle();
+ String fieldTimerHandle();
+ String fieldPeriod();
+ String fieldSymbol();
+ String fieldIsIntraProcess();
+ String fieldStateMachine();
+ String fieldStartLabel();
+ String fieldGoalLabel();
+ String fieldTimeout();
+ String fieldHandle();
+
+ // DDS
+ String fieldGidPrefix();
+ String fieldGidEntity();
+ String fieldWriter();
+ String fieldData();
+ String fieldTimestamp();
+ String fieldReader();
+ String fieldBuffer();
+
+ // Context fields
+ String contextVpid();
+ String contextVtid();
+ String contextProcname();
+}
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/Ros2RollingEventLayout.java b/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/Ros2RollingEventLayout.java
new file mode 100644
index 00000000..3b70f2eb
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.core/src/org/eclipse/tracecompass/incubator/internal/ros2/core/trace/layout/Ros2RollingEventLayout.java
@@ -0,0 +1,582 @@
+/**********************************************************************
+ * Copyright (c) 2022 École Polytechnique de Montréal
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ **********************************************************************/
+
+package org.eclipse.tracecompass.incubator.internal.ros2.core.trace.layout;
+
+import org.eclipse.jdt.annotation.NonNullByDefault;
+
+/**
+ * Definitions used in ros2_tracing
+ *
+ * @author Christophe Bedard
+ */
+@SuppressWarnings("nls")
+@NonNullByDefault
+public class Ros2RollingEventLayout implements IRos2EventLayout {
+
+ /** Event names */
+ private static final String RCL_INIT = "ros2:rcl_init";
+ private static final String RCL_NODE_INIT = "ros2:rcl_node_init";
+ private static final String RMW_PUBLISHER_INIT = "ros2:rmw_publisher_init";
+ private static final String RCL_PUBLISHER_INIT = "ros2:rcl_publisher_init";
+ private static final String RCLCPP_PUBLISH = "ros2:rclcpp_publish";
+ private static final String RCL_PUBLISH = "ros2:rcl_publish";
+ private static final String RMW_PUBLISH = "ros2:rmw_publish";
+ private static final String RMW_SUBSCRIPTION_INIT = "ros2:rmw_subscription_init";
+ private static final String RCL_SUBSCRIPTION_INIT = "ros2:rcl_subscription_init";
+ private static final String RCLCPP_SUBSCRIPTION_INIT = "ros2:rclcpp_subscription_init";
+ private static final String RCLCPP_SUBSCRIPTION_CALLBACK_ADDED = "ros2:rclcpp_subscription_callback_added";
+ private static final String RMW_TAKE = "ros2:rmw_take";
+ private static final String RCL_TAKE = "ros2:rcl_take";
+ private static final String RCLCPP_TAKE = "ros2:rclcpp_take";
+ private static final String RCL_SERVICE_INIT = "ros2:rcl_service_init";
+ private static final String RCLCPP_SERVICE_CALLBACK_ADDED = "ros2:rclcpp_service_callback_added";
+ private static final String RCL_CLIENT_INIT = "ros2:rcl_client_init";
+ private static final String RCL_TIMER_INIT = "ros2:rcl_timer_init";
+ private static final String RCLCPP_TIMER_CALLBACK_ADDED = "ros2:rclcpp_timer_callback_added";
+ private static final String RCLCPP_TIMER_LINK_NODE = "ros2:rclcpp_timer_link_node";
+ private static final String RCLCPP_CALLBACK_REGISTER = "ros2:rclcpp_callback_register";
+ private static final String CALLBACK_START = "ros2:callback_start";
+ private static final String CALLBACK_END = "ros2:callback_end";
+ private static final String RCL_LIFECYCLE_STATE_MACHINE_INIT = "ros2:rcl_lifecycle_state_machine_init";
+ private static final String RCL_LIFECYCLE_TRANSITION = "ros2:rcl_lifecycle_transition";
+ private static final String RCLCPP_EXECUTOR_GET_NEXT_READY = "ros2:rclcpp_executor_get_next_ready";
+ private static final String RCLCPP_EXECUTOR_WAIT_FOR_WORK = "ros2:rclcpp_executor_wait_for_work";
+ private static final String RCLCPP_EXECUTOR_EXECUTE = "ros2:rclcpp_executor_execute";
+
+ private static final String DDS_CREATE_WRITER = "dds:create_writer";
+ private static final String DDS_WRITE_PRE = "dds:write_pre";
+ private static final String DDS_WRITE = "dds:write";
+ private static final String DDS_CREATE_READER = "dds:create_reader";
+ private static final String DDS_READ = "dds:read";
+
+ /** Field names */
+ private static final String CONTEXT_HANDLE = "context_handle";
+ private static final String VERSION = "version";
+ private static final String NODE_HANDLE = "node_handle";
+ private static final String RMW_HANDLE = "rmw_handle";
+ private static final String NODE_NAME = "node_name";
+ private static final String NAMESPACE = "namespace";
+ private static final String RMW_PUBLISHER_HANDLE = "rmw_publisher_handle";
+ private static final String GID = "gid";
+ private static final String PUBLISHER_HANDLE = "publisher_handle";
+ private static final String TOPIC_NAME = "topic_name";
+ private static final String QUEUE_DEPTH = "queue_depth";
+ private static final String MESSAGE = "message";
+ private static final String RMW_SUBSCRIPTION_HANDLE = "rmw_subscription_handle";
+ private static final String SUBSCRIPTION_HANDLE = "subscription_handle";
+ private static final String SUBSCRIPTION = "subscription";
+ private static final String CALLBACK = "callback";
+ private static final String SOURCE_TIMESTAMP = "source_timestamp";
+ private static final String TAKEN = "taken";
+ private static final String SERVICE_HANDLE = "service_handle";
+ private static final String RMW_SERVICE_HANDLE = "rmw_service_handle";
+ private static final String SERVICE_NAME = "service_name";
+ private static final String CLIENT_HANDLE = "client_handle";
+ private static final String RMW_CLIENT_HANDLE = "rmw_client_handle";
+ private static final String TIMER_HANDLE = "timer_handle";
+ private static final String PERIOD = "period";
+ private static final String SYMBOL = "symbol";
+ private static final String IS_INTRA_PROCESS = "is_intra_process";
+ private static final String STATE_MACHINE = "state_machine";
+ private static final String START_LABEL = "start_label";
+ private static final String GOAL_LABEL = "goal_label";
+ private static final String TIMEOUT = "timeout";
+ private static final String HANDLE = "handle";
+ private static final String GID_PREFIX = "gid_prefix";
+ private static final String GID_ENTITY = "gid_entity";
+ private static final String WRITER = "writer";
+ private static final String DATA = "data";
+ private static final String TIMESTAMP = "timestamp";
+ private static final String READER = "reader";
+ private static final String BUFFER = "buffer";
+
+ /** Context */
+ private static final String VPID = "context._vpid";
+ private static final String VTID = "context._vtid";
+ private static final String PROCNAME = "context._procname";
+
+ /**
+ * Constructor
+ */
+ protected Ros2RollingEventLayout() {
+ // Do nothing
+ }
+
+ private static final Ros2RollingEventLayout INSTANCE = new Ros2RollingEventLayout();
+
+ /**
+ * Get a singleton instance
+ *
+ * @return the instance
+ */
+ public static Ros2RollingEventLayout getInstance() {
+ return INSTANCE;
+ }
+
+ // ------------------------------------------------------------------------
+ // Events
+ // ------------------------------------------------------------------------
+
+ // rcl_init
+
+ @Override
+ public String eventRclInit() {
+ return RCL_INIT;
+ }
+
+ // rcl_node_init
+
+ @Override
+ public String eventRclNodeInit() {
+ return RCL_NODE_INIT;
+ }
+
+ // rmw_publisher_init
+
+ @Override
+ public String eventRmwPublisherInit() {
+ return RMW_PUBLISHER_INIT;
+ }
+
+ // rcl_publisher_init
+
+ @Override
+ public String eventRclPublisherInit() {
+ return RCL_PUBLISHER_INIT;
+ }
+
+ // rclcpp_publish
+
+ @Override
+ public String eventRclcppPublish() {
+ return RCLCPP_PUBLISH;
+ }
+
+ // rcl_publish
+
+ @Override
+ public String eventRclPublish() {
+ return RCL_PUBLISH;
+ }
+
+ // rmw_publish
+
+ @Override
+ public String eventRmwPublish() {
+ return RMW_PUBLISH;
+ }
+
+ // rmw_subscription_init
+
+ @Override
+ public String eventRmwSubscriptionInit() {
+ return RMW_SUBSCRIPTION_INIT;
+ }
+
+ // rcl_subscription_init
+
+ @Override
+ public String eventRclSubscriptionInit() {
+ return RCL_SUBSCRIPTION_INIT;
+ }
+
+ // rclcpp_subscription_init
+
+ @Override
+ public String eventRclcppSubscriptionInit() {
+ return RCLCPP_SUBSCRIPTION_INIT;
+ }
+
+ // rclcpp_subscription_callback_added
+
+ @Override
+ public String eventRclcppSubscriptionCallbackAdded() {
+ return RCLCPP_SUBSCRIPTION_CALLBACK_ADDED;
+ }
+
+ // rmw_take
+
+ @Override
+ public String eventRmwTake() {
+ return RMW_TAKE;
+ }
+
+ // rcl_take
+
+ @Override
+ public String eventRclTake() {
+ return RCL_TAKE;
+ }
+
+ // rclcpp_take
+
+ @Override
+ public String eventRclcppTake() {
+ return RCLCPP_TAKE;
+ }
+
+ // rcl_service_init
+
+ @Override
+ public String eventRclServiceInit() {
+ return RCL_SERVICE_INIT;
+ }
+
+ // rclcpp_service_callback_added
+
+ @Override
+ public String eventRclcppServiceCallbackAdded() {
+ return RCLCPP_SERVICE_CALLBACK_ADDED;
+ }
+
+ // rcl_client_init
+
+ @Override
+ public String eventRclClientInit() {
+ return RCL_CLIENT_INIT;
+ }
+
+ // rcl_timer_init
+
+ @Override
+ public String eventRclTimerInit() {
+ return RCL_TIMER_INIT;
+ }
+
+ // rclcpp_timer_callback_added
+
+ @Override
+ public String eventRclcppTimerCallbackAdded() {
+ return RCLCPP_TIMER_CALLBACK_ADDED;
+ }
+
+ // rclcpp_timer_link_node
+
+ @Override
+ public String eventRclcppTimerLinkNode() {
+ return RCLCPP_TIMER_LINK_NODE;
+ }
+
+ // rclcpp_callback_register
+
+ @Override
+ public String eventRclcppCallbackRegister() {
+ return RCLCPP_CALLBACK_REGISTER;
+ }
+
+ // callback_start
+
+ @Override
+ public String eventCallbackStart() {
+ return CALLBACK_START;
+ }
+
+ // callback_end
+
+ @Override
+ public String eventCallbackEnd() {
+ return CALLBACK_END;
+ }
+
+ // rcl_lifecycle_state_machine_init
+
+ @Override
+ public String eventRclLifecycleStateMachineInit() {
+ return RCL_LIFECYCLE_STATE_MACHINE_INIT;
+ }
+
+ // rcl_lifecycle_transition
+
+ @Override
+ public String eventRclLifecycleTransition() {
+ return RCL_LIFECYCLE_TRANSITION;
+ }
+
+ // rclcpp_executor_get_next_ready
+
+ @Override
+ public String eventRclcppExecutorGetNextReady() {
+ return RCLCPP_EXECUTOR_GET_NEXT_READY;
+ }
+
+ // rclcpp_executor_wait_for_work
+
+ @Override
+ public String eventRclcppExecutorWaitForWork() {
+ return RCLCPP_EXECUTOR_WAIT_FOR_WORK;
+ }
+
+ // rclcpp_executor_execute
+
+ @Override
+ public String eventRclcppExecutorExecute() {
+ return RCLCPP_EXECUTOR_EXECUTE;
+ }
+
+ // DDS
+
+ // dds:create_writer
+
+ @Override
+ public String eventDdsCreateWriter() {
+ return DDS_CREATE_WRITER;
+ }
+
+ // dds:write_pre
+
+ @Override
+ public String eventDdsWritePre() {
+ return DDS_WRITE_PRE;
+ }
+
+ // dds:write
+
+ @Override
+ public String eventDdsWrite() {
+ return DDS_WRITE;
+ }
+
+ // dds:create_reader
+
+ @Override
+ public String eventDdsCreateReader() {
+ return DDS_CREATE_READER;
+ }
+
+ // dds:read
+
+ @Override
+ public String eventDdsRead() {
+ return DDS_READ;
+ }
+
+ // ------------------------------------------------------------------------
+ // Fields
+ // ------------------------------------------------------------------------
+
+ @Override
+ public String fieldContextHandle() {
+ return CONTEXT_HANDLE;
+ }
+
+ @Override
+ public String fieldVersion() {
+ return VERSION;
+ }
+
+ @Override
+ public String fieldNodeHandle() {
+ return NODE_HANDLE;
+ }
+
+ @Override
+ public String fieldRmwHandle() {
+ return RMW_HANDLE;
+ }
+
+ @Override
+ public String fieldNodeName() {
+ return NODE_NAME;
+ }
+
+ @Override
+ public String fieldNamespace() {
+ return NAMESPACE;
+ }
+
+ @Override
+ public String fieldRmwPublisherHandle() {
+ return RMW_PUBLISHER_HANDLE;
+ }
+
+ @Override
+ public String fieldGid() {
+ return GID;
+ }
+
+ @Override
+ public String fieldPublisherHandle() {
+ return PUBLISHER_HANDLE;
+ }
+
+ @Override
+ public String fieldTopicName() {
+ return TOPIC_NAME;
+ }
+
+ @Override
+ public String fieldQueueDepth() {
+ return QUEUE_DEPTH;
+ }
+
+ @Override
+ public String fieldMessage() {
+ return MESSAGE;
+ }
+
+ @Override
+ public String fieldRmwSubscriptionHandle() {
+ return RMW_SUBSCRIPTION_HANDLE;
+ }
+
+ @Override
+ public String fieldSubscriptionHandle() {
+ return SUBSCRIPTION_HANDLE;
+ }
+
+ @Override
+ public String fieldSubscription() {
+ return SUBSCRIPTION;
+ }
+
+ @Override
+ public String fieldCallback() {
+ return CALLBACK;
+ }
+
+ @Override
+ public String fieldSourceTimestamp() {
+ return SOURCE_TIMESTAMP;
+ }
+
+ @Override
+ public String fieldTaken() {
+ return TAKEN;
+ }
+
+ @Override
+ public String fieldServiceHandle() {
+ return SERVICE_HANDLE;
+ }
+
+ @Override
+ public String fieldRmwServiceHandle() {
+ return RMW_SERVICE_HANDLE;
+ }
+
+ @Override
+ public String fieldServiceName() {
+ return SERVICE_NAME;
+ }
+
+ @Override
+ public String fieldClientHandle() {
+ return CLIENT_HANDLE;
+ }
+
+ @Override
+ public String fieldRmwClientHandle() {
+ return RMW_CLIENT_HANDLE;
+ }
+
+ @Override
+ public String fieldTimerHandle() {
+ return TIMER_HANDLE;
+ }
+
+ @Override
+ public String fieldPeriod() {
+ return PERIOD;
+ }
+
+ @Override
+ public String fieldSymbol() {
+ return SYMBOL;
+ }
+
+ @Override
+ public String fieldIsIntraProcess() {
+ return IS_INTRA_PROCESS;
+ }
+
+ @Override
+ public String fieldStateMachine() {
+ return STATE_MACHINE;
+ }
+
+ @Override
+ public String fieldStartLabel() {
+ return START_LABEL;
+ }
+
+ @Override
+ public String fieldGoalLabel() {
+ return GOAL_LABEL;
+ }
+
+ @Override
+ public String fieldTimeout() {
+ return TIMEOUT;
+ }
+
+ @Override
+ public String fieldHandle() {
+ return HANDLE;
+ }
+
+ // DDS
+
+ @Override
+ public String fieldGidPrefix() {
+ return GID_PREFIX;
+ }
+
+ @Override
+ public String fieldGidEntity() {
+ return GID_ENTITY;
+ }
+
+ @Override
+ public String fieldWriter() {
+ return WRITER;
+ }
+
+ @Override
+ public String fieldData() {
+ return DATA;
+ }
+
+ @Override
+ public String fieldTimestamp() {
+ return TIMESTAMP;
+ }
+
+ @Override
+ public String fieldReader() {
+ return READER;
+ }
+
+ @Override
+ public String fieldBuffer() {
+ return BUFFER;
+ }
+
+ // ------------------------------------------------------------------------
+ // Context fields
+ // Note: The CTF parser exposes contexts as fields called "context._"
+ // ------------------------------------------------------------------------
+
+ @Override
+ public String contextVpid() {
+ return VPID;
+ }
+
+ @Override
+ public String contextVtid() {
+ return VTID;
+ }
+
+ @Override
+ public String contextProcname() {
+ return PROCNAME;
+ }
+}
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.classpath b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.classpath
new file mode 100644
index 00000000..b8d064f6
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.classpath
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.gitignore b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.gitignore
new file mode 100644
index 00000000..ae3c1726
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.gitignore
@@ -0,0 +1 @@
+/bin/
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.project b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.project
new file mode 100644
index 00000000..7eff8551
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.project
@@ -0,0 +1,34 @@
+
+
+ org.eclipse.tracecompass.incubator.ros2.ui
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+ org.eclipse.pde.api.tools.apiAnalysisBuilder
+
+
+
+
+
+ org.eclipse.pde.PluginNature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.pde.api.tools.apiAnalysisNature
+
+
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/.api_filters b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/.api_filters
new file mode 100644
index 00000000..f301ddc4
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/.api_filters
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.resources.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..99f26c02
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.runtime.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 00000000..5a0ad22d
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.core.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..cbb506ff
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,433 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=f
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=error
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=error
+org.eclipse.jdt.core.compiler.problem.deadCode=error
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=error
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=error
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=error
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=error
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=error
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=error
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=error
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=warning
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=error
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=error
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=error
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=error
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=enabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=error
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=all_standard_tags
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=warning
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=protected
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=error
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=error
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=error
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=error
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=error
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=warning
+org.eclipse.jdt.core.compiler.problem.nullReference=error
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=error
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=error
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=error
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=error
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=error
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=error
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=error
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=error
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=error
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=error
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=error
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=error
+org.eclipse.jdt.core.compiler.problem.unusedLabel=error
+org.eclipse.jdt.core.compiler.problem.unusedLocal=error
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=error
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=error
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=error
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=error
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=error
+org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=250
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.ui.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000..232a3fd7
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,60 @@
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_tmf-style
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=false
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.api.tools.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 00000000..3c9b07ac
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,99 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Ignore
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Error
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Error
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_JAVADOC_TAG=Warning
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Warning
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Ignore
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.prefs b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.prefs
new file mode 100644
index 00000000..01d624df
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,32 @@
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=0
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=0
+compilers.p.build.src.includes=0
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=1
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=1
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/META-INF/MANIFEST.MF b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..0bc37dea
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/META-INF/MANIFEST.MF
@@ -0,0 +1,25 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Bundle-Name
+Bundle-Vendor: %Bundle-Vendor
+Bundle-SymbolicName: org.eclipse.tracecompass.incubator.ros2.ui;singleton:=true
+Bundle-Version: 0.1.0.qualifier
+Bundle-Localization: plugin
+Bundle-Activator: org.eclipse.tracecompass.incubator.internal.ros2.ui.Activator
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.eclipse.core.resources,
+ org.eclipse.tracecompass.common.core,
+ org.eclipse.tracecompass.datastore.core,
+ org.eclipse.tracecompass.incubator.ros2.core,
+ org.eclipse.tracecompass.tmf.ui,
+ org.eclipse.tracecompass.tmf.core,
+ org.eclipse.jdt.annotation;bundle-version="[2.0.0,3.0.0)";resolution:=optional
+Export-Package: org.eclipse.tracecompass.incubator.internal.ros2.ui;x-internal:=true
+Automatic-Module-Name: org.eclipse.tracecompass.incubator.ros2.ui
+Import-Package: com.google.common.cache,
+ com.google.common.collect,
+ com.google.common.hash,
+ org.apache.commons.lang3
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/about.html b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/about.html
new file mode 100644
index 00000000..164f781a
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/about.html
@@ -0,0 +1,36 @@
+
+
+
+
+About
+
+
+ About This Content
+
+ November 30, 2017
+ License
+
+
+ The Eclipse Foundation makes available all content in this plug-in
+ ("Content"). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 ("EPL"). A copy of the EPL is
+ available at http://www.eclipse.org/legal/epl-2.0.
+ For purposes of the EPL, "Program" will mean the Content.
+
+
+
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ ("Redistributor") and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at http://www.eclipse.org.
+
+
+
+
\ No newline at end of file
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/build.properties b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/build.properties
new file mode 100644
index 00000000..21645b6d
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2022 École Polytechnique de Montréal
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+ .,\
+ about.html,\
+ plugin.properties,\
+ plugin.xml
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/icons/ros2.png b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/icons/ros2.png
new file mode 100644
index 00000000..b83f4ced
Binary files /dev/null and b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/icons/ros2.png differ
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.properties b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.properties
new file mode 100644
index 00000000..e2fd0691
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.properties
@@ -0,0 +1,16 @@
+###############################################################################
+# Copyright (c) 2022 �cole Polytechnique de Montr�al
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+Bundle-Vendor = Eclipse Trace Compass Incubator
+Bundle-Name = Trace Compass ROS 2 UI Plug-in (Incubator)
+
+ros2.name = ROS 2
+ros2.perspective = ROS 2
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.xml b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.xml
new file mode 100644
index 00000000..c9f3c20b
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/plugin.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/Activator.java b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/Activator.java
new file mode 100644
index 00000000..205a011a
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/Activator.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2022 École Polytechnique de Montréal
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.incubator.internal.ros2.ui;
+
+import org.eclipse.jdt.annotation.Nullable;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ /** The plugin ID */
+ public static final String PLUGIN_ID = "org.eclipse.tracecompass.incubator.ros2.ui"; //$NON-NLS-1$
+
+ // The shared instance
+ private static @Nullable Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ @Override
+ public void start(@Nullable BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ @Override
+ public void stop(@Nullable BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static @Nullable Activator getDefault() {
+ return plugin;
+ }
+
+ /**
+ * Get the ImageDescriptor from a given path
+ *
+ * @param path
+ * The path to the image file
+ * @return The ImageDescriptor object
+ */
+ public @Nullable ImageDescriptor getImageDescripterFromPath(String path) {
+ return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
+ }
+}
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/package-info.java b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/package-info.java
new file mode 100644
index 00000000..5891354b
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2.ui/src/org/eclipse/tracecompass/incubator/internal/ros2/ui/package-info.java
@@ -0,0 +1,13 @@
+/*******************************************************************************
+ * Copyright (c) 2022 École Polytechnique de Montréal
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License 2.0 which
+ * accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+
+@org.eclipse.jdt.annotation.NonNullByDefault
+package org.eclipse.tracecompass.incubator.internal.ros2.ui;
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2/.project b/tracetypes/org.eclipse.tracecompass.incubator.ros2/.project
new file mode 100644
index 00000000..3cddc142
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2/.project
@@ -0,0 +1,17 @@
+
+
+ org.eclipse.tracecompass.incubator.ros2
+
+
+
+
+
+ org.eclipse.pde.FeatureBuilder
+
+
+
+
+
+ org.eclipse.pde.FeatureNature
+
+
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2/build.properties b/tracetypes/org.eclipse.tracecompass.incubator.ros2/build.properties
new file mode 100644
index 00000000..de40c627
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2/build.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2022 École Polytechnique de Montréal
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+bin.includes = feature.xml,\
+ feature.properties
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.properties b/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.properties
new file mode 100644
index 00000000..ffbca545
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2022 École Polytechnique de Montréal
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License 2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0
+#
+# SPDX-License-Identifier: EPL-2.0
+###############################################################################
+
+featureName=Trace Compass ROS 2 (Incubation)
+
+description=Robot Operating System 2 (ROS 2) analyses and views for traces generated with LTTng and the ros2_tracing framework
+
+featureProvider=Eclipse Trace Compass Incubator
+
+copyright=École Polytechnique de Montréal
diff --git a/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.xml b/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.xml
new file mode 100644
index 00000000..307261f6
--- /dev/null
+++ b/tracetypes/org.eclipse.tracecompass.incubator.ros2/feature.xml
@@ -0,0 +1,43 @@
+
+
+
+
+ %description
+
+
+
+ %copyright
+
+
+
+ %license
+
+
+
+
+
+
+
+
+
diff --git a/tracetypes/pom.xml b/tracetypes/pom.xml
index e31dc865..7c49bc1a 100644
--- a/tracetypes/pom.xml
+++ b/tracetypes/pom.xml
@@ -58,6 +58,10 @@
org.eclipse.tracecompass.incubator.ros.core
org.eclipse.tracecompass.incubator.ros.core.tests
org.eclipse.tracecompass.incubator.ros.ui
+ org.eclipse.tracecompass.incubator.ros2
+ org.eclipse.tracecompass.incubator.ros2.core
+ org.eclipse.tracecompass.incubator.ros2.core.tests
+ org.eclipse.tracecompass.incubator.ros2.ui
org.eclipse.tracecompass.incubator.otf2
org.eclipse.tracecompass.incubator.otf2.core
org.eclipse.tracecompass.incubator.otf2.core.tests