/*******************************************************************************
* Copyright (c) 2013 Ericsson AB and others.
* 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
*
* Contributors:
* Alvaro Sanchez-Leon (Ericsson AB) - Support for Step into selection (bug 244865)
*******************************************************************************/
package org.eclipse.cdt.dsf.debug.service;
import org.eclipse.cdt.core.model.IFunctionDeclaration;
import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.concurrent.RequestMonitor;
/**
* This interface extends IRunControl2 to let a service support the
* "Step into selection" command.
* @since 2.4
*/
public interface IRunControl3 extends IRunControl2 {
/**
* Returns whether the service is in the state to execute 'Step into selection'
* for the specified context
*
* @param context the execution DM context
* @param sourceFile the source file path, mapped to a debugger path if possible, invalid if selectedFunction is Null
* @param lineNumber the line number of the source file where the user selected the target function, invalid if selectedFunction is Null
* @param selectedFunction The target function to step into <br>NOTE: a null value shall disregard linenumber and sourceFile
* @param rm the DataRequestMonitor that will return the result
*/
void canStepIntoSelection(IExecutionDMContext context, String sourceFile, int lineNumber,
IFunctionDeclaration selectedFunction, DataRequestMonitor<Boolean> rm);
/**
* Request to run the program forward into the specified function
* if the current stop location is not at the specified lineNumber and
* skipBreakpoints is false, any other breakpoint found before the specified line number will stop this
* command; while if skipBreakpoints is true, the operation will ignore
* other breakpoints and continue until the specified location.
*
* @param context the execution DM context
* @param sourceFile the source file path, mapped to a debugger path if possible.
* @param lineNumber the line number of the source file where the user selected the target function
* @param skipBreakpoints skip breakpoints while performing this operation
* @param selectedFunction the target function to step into
* @param rm the DataRequestMonitor that will return the result
*/
void stepIntoSelection (IExecutionDMContext context, String sourceFile, int lineNumber,
boolean skipBreakpoints, IFunctionDeclaration selectedFunction, RequestMonitor rm);
}