/*****************************************************************************
* Copyright (c) 2006, 2008 g-Eclipse Consortium
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Initial development of the original code was made for the
* g-Eclipse project founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributors:
* Christof Klausecker GUP, JKU - initial API and implementation
*****************************************************************************/
package eu.geclipse.traceview;
import org.eclipse.ui.views.properties.IPropertySource;
/**
* Interface for a process containing logical clock events.
*/
public interface IProcess extends IPropertySource {
/**
* Returns the process id
*
* @return process id
*/
int getProcessId();
/**
* Returns the maximum logical clock for this process.
*
* @return the maximum logical clock.
*/
int getMaximumLogicalClock();
/**
* Returns the event with the specified logical clock
*
* @param index
* @return event
* @throws IndexOutOfBoundsException
*/
IEvent getEventByLogicalClock( int index ) throws IndexOutOfBoundsException;
/**
* Returns an array containing IEvents of the specified range.
*
* @param fromIndex The logical clock of the first event to be included.
* @param toIndex The logical clock of the last event to be included.
* @return Array containing events.
* @throws IndexOutOfBoundsException
*/
IEvent[] getEventsByLogicalClock( int fromIndex, int toIndex )
throws IndexOutOfBoundsException;
/**
* Returns the trace this process belongs to.
* @return the trace this process belongs to.
*/
ITrace getTrace();
}