sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/engine/IMemoryActivityModel.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Wed, 21 Apr 2010 19:42:48 +0300
changeset 6 f65f740e69f9
parent 1 1050670c6980
child 15 0367d2db2c06
permissions -rw-r--r--
AnalyzeTool Carbide Extension v1.9.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();
		
}