blob: af30c81100c9f96a38918b55d9f8dff87fa86e7f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2014 Ericsson
*
* 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:
* Francois Chouinard - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.core.trace.experiment;
import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
import org.eclipse.tracecompass.tmf.core.trace.TmfContext;
/**
* <b><u>TmfExperimentCheckpoint</u></b>
* <p>
* TODO: Implement me. Please.
*/
public class TmfExperimentCheckpoint implements Comparable<TmfExperimentCheckpoint> {
// ------------------------------------------------------------------------
// Attributes
// ------------------------------------------------------------------------
private final TmfTimestamp fTimestamp;
private final long[] fRanks;
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
/**
* @param ts the checkpoint timestamp
* @param contexts the corresponding set of trace contexts
*/
public TmfExperimentCheckpoint(final TmfTimestamp ts, final TmfContext[] contexts) {
fTimestamp = ts;
fRanks = new long[contexts.length];
for (int i = 0; i < fRanks.length; i++) {
fRanks[i] = contexts[i].getRank();
}
}
// ------------------------------------------------------------------------
// Accessors
// ------------------------------------------------------------------------
/**
* @return the checkpoint event timestamp
*/
public TmfTimestamp getTimestamp() {
return fTimestamp;
}
/**
* @return the checkpoint event rank
*/
public long[] getRanks() {
return fRanks;
}
// ------------------------------------------------------------------------
// Object
// ------------------------------------------------------------------------
@Override
public int hashCode() {
int result = 37;
result = 17 * result + fTimestamp.hashCode();
return result;
}
@Override
public boolean equals(final Object other) {
if (!(other instanceof TmfExperimentCheckpoint)) {
return false;
}
final TmfExperimentCheckpoint o = (TmfExperimentCheckpoint) other;
return fTimestamp.equals(o.fTimestamp);
}
// ------------------------------------------------------------------------
// Comparable
// ------------------------------------------------------------------------
@Override
public int compareTo(final TmfExperimentCheckpoint other) {
return fTimestamp.compareTo(other.fTimestamp);
}
}