sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/engine/IMemoryActivityModel.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Tue, 24 Aug 2010 12:16:27 +0300
changeset 15 0367d2db2c06
parent 6 f65f740e69f9
permissions -rw-r--r--
AnalyzeTool Carbide extension 1.10.0

/*
 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
 * which accompanies this distribution, and is available
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
 *
 * Initial Contributors:
 * Nokia Corporation - initial contribution.
 *
 * Contributors:
 *
 * Description:  Definitions for the class IMemoryActivityModel
 *
 */
package com.nokia.s60tools.analyzetool.engine;

import java.util.AbstractList;

import com.nokia.s60tools.analyzetool.engine.statistic.ProcessInfo;

/**
 * Interface for the memory model of AnalyzeTool
 */
public interface IMemoryActivityModel {

	/**
	 * Sets the data to use. This will cause listeners to be notified.
	 * 
	 * @param processes
	 *            The list of processes to set
	 */
	public void addProcesses(AbstractList<ProcessInfo> processes);

	/**
	 * Sets the selected ProcessInfo
	 * 
	 * @param processInfo
	 */
	public void setSelectedProcess(ProcessInfo processInfo);

	/**
	 * returns the last selected process
	 * 
	 * @return Selected process
	 */
	public ProcessInfo getSelectedProcess();

	/**
	 * Get the start time of the process that started first
	 * 
	 * @return time
	 */
	public Long getFirstProcessTime();

	/**
	 * Get end time of the process that ended last
	 * 
	 * @return Last process time
	 */
	public Long getLastProcessTime();

	/**
	 * Get time of the first memory operation
	 * 
	 * @return First memory operation time.
	 */
	public Long getFirstMemOpTime();

	/**
	 * Get last memory operation time from all processes
	 * 
	 * @return Last memory operation time.
	 */
	public Long getLastMemOpTime();

	/**
	 * get highest cumulated memory
	 * 
	 * @return size
	 */
	public int getHighestCumulatedMemoryAlloc();

	/**
	 * Get list of processes
	 * 
	 * @return processes list
	 */
	public AbstractList<ProcessInfo> getProcesses();

	/**
	 * @param listener
	 *            the listener to register
	 */
	void addListener(IMemoryActivityModelChangeListener listener);

	/**
	 * @param listener
	 *            the listener to remove
	 */
	void removeListener(IMemoryActivityModelChangeListener listener);

	/**
	 * Returns true if callstack reading from files is done on demand after the
	 * initial parsing phase. This assumes file positions are available from
	 * BaseInfo
	 * 
	 * @return true for deferred callstack reading, false otherwise
	 */
	public boolean isDeferredCallstackReading();

	/**
	 * Indicates whether this model is reading callstacks on demand after the
	 * initial parsing phase has finished
	 * 
	 * @param value
	 */
	public void setDeferredCallstackReading(boolean value);

	/**
	 * Setter for the ICallstackManager
	 * 
	 * @param callstackManager
	 *            the CallstackManager to set
	 */
	public void setCallstackManager(ICallstackManager callstackManager);

	/**
	 * Getter for ICallstackManager.
	 * 
	 * @return CallstackManager
	 */
	public ICallstackManager getCallstackManager();
}