blob: 607deffc7f06dbe9f51ae6ea1532716aecfc6919 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2019 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
*******************************************************************************/
package org.eclipse.tracecompass.tmf.core.analysis.callsite;
import java.util.Objects;
import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.tmf.core.event.lookup.ITmfCallsite;
/**
* Class to store callsite and the time when it was called.
*
* @author Bernd Hufmann
* @since 5.2
*/
public class TimeCallsite {
private final long fTime;
private final ITmfCallsite fCallsite;
/**
* Constructor
*
* @param callsite
* The callsite implementation
* @param time
* when callsite was called
*/
public TimeCallsite(ITmfCallsite callsite, long time) {
fCallsite = callsite;
fTime = time;
}
/**
* Gets the callsite object.
*
* @return the callsite object.
*/
public ITmfCallsite getCallsite() {
return fCallsite;
}
/**
* Gets the time when callsite was called.
*
* @return the time when the callsite was called.
*/
public long getTime() {
return fTime;
}
@Override
public int hashCode() {
return Objects.hash(fCallsite, fTime);
}
@Override
public boolean equals(@Nullable Object obj) {
return Objects.equals(fCallsite, obj) && (obj != null) && (fTime == ((TimeCallsite) obj).fTime);
}
}