blob: ace16d994650449cc64042943cc0e828b5ff626f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011, 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:
* Bernd Hufmann - Initial API and implementation
* Francois Chouinard - Moved from LTTng to TMF
* Xavier Raynaud - Support multi-trace coloring
*******************************************************************************/
package org.eclipse.tracecompass.tmf.ui.views.histogram;
import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
import org.eclipse.tracecompass.tmf.ui.views.distribution.model.IBaseDistributionModel;
/**
* Histogram data model interface.
*
* @author Bernd Hufmann
*/
public interface IHistogramDataModel extends IBaseDistributionModel {
/**
* Add event to the correct bucket, compacting the if needed.
*
* @param eventCount the event to count
* @param timestamp the timestamp of the event to count
* @param trace the trace corresponding to given events
*/
void countEvent(long eventCount, long timestamp, ITmfTrace trace);
/**
* Scale the model data to the width, height and bar width requested.
*
* @param width A width of the histogram canvas
* @param height A height of the histogram canvas
* @param barWidth A width (in pixel) of a histogram bar
* @return the result array of size [width] and where the highest value doesn't exceed [height]
* while considering the bar width [barWidth]
*/
HistogramScaledData scaleTo(int width, int height, int barWidth);
}