Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java')
-rw-r--r--tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java59
1 files changed, 59 insertions, 0 deletions
diff --git a/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java
new file mode 100644
index 0000000000..9074736099
--- /dev/null
+++ b/tmf/org.eclipse.tracecompass.tmf.core/src/org/eclipse/tracecompass/tmf/core/synchronization/ITmfTimestampTransform.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2013, 2014 É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 v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Geneviève Bastien - Initial implementation and API
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.tmf.core.synchronization;
+
+import java.io.Serializable;
+
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.tracecompass.tmf.core.timestamp.ITmfTimestamp;
+
+/**
+ * This class contains a formula to transform the value of a timestamp, for
+ * example after trace synchronization
+ *
+ * @author Geneviève Bastien
+ */
+public interface ITmfTimestampTransform extends Serializable {
+
+ /**
+ * Transforms a timestamp
+ *
+ * @param timestamp
+ * The timestamp to transform
+ * @return the transformed timestamp
+ */
+ @NonNull ITmfTimestamp transform(@NonNull ITmfTimestamp timestamp);
+
+ /**
+ * Transforms a timestamp value
+ *
+ * @param timestamp
+ * The timestamp to transform in nanoseconds
+ * @return the transformed value
+ */
+ long transform(long timestamp);
+
+ /**
+ * Returns a timestamp transform that is the composition of two timestamp
+ * transforms. Composed objects must be the same type.
+ *
+ * @param composeWith
+ * The transform to first apply on the timestamp before applying
+ * the current object
+ * @return A new timestamp transform object with the resulting composition.
+ *
+ * TODO: allow composition of different transform types.
+ */
+ ITmfTimestampTransform composeWith(ITmfTimestampTransform composeWith);
+
+}

Back to the top