blob: 36f80f38e9c364ed93d0ae30bf999aa44fdf16bd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 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 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Geneviève Bastien - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.synchronization;
import org.eclipse.tracecompass.internal.tmf.core.synchronization.SyncAlgorithmFullyIncremental;
/**
* A factory to generate synchronization algorithm to synchronize traces
*
* @author Geneviève Bastien
*/
public final class SynchronizationAlgorithmFactory {
private SynchronizationAlgorithmFactory() {
}
/**
* Returns the system's default trace synchronization algorithm, ie the
* fully incremental convex hull synchronization algorithm.
*
* @return The default trace synchronization algorithm
*/
public static SynchronizationAlgorithm getDefaultAlgorithm() {
return new SyncAlgorithmFullyIncremental();
}
/**
* Returns the class implementing the fully incremental convex hull trace
* synchronization approach as described in
*
* Masoume Jabbarifar, Michel Dagenais and Alireza Shameli-Sendi,
* "Streaming Mode Incremental Clock Synchronization"
*
* @return The {@link SynchronizationAlgorithm} implementing the fully
* incremental convex hull synchronization algorithm
*/
public static SynchronizationAlgorithm getFullyIncrementalAlgorithm() {
return new SyncAlgorithmFullyIncremental();
}
}