/******************************************************************************* * Copyright (c) 2014 Mentor Graphics 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: * Mentor Graphics - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.dsf.debug.service; import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor; import org.eclipse.cdt.dsf.concurrent.RequestMonitor; import org.eclipse.cdt.dsf.datamodel.IDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; /** * This interface provides the ability to perform detach on multiple contexts. * * @since 2.6 */ public interface IMultiDetach { /** * Checks whether it is possible to detach the debugger from at least one * of the specified processes. * * @param dmcs The contexts to detach the debugger from. Each context * should have {@link IContainerDMContext} as an ancestor. * @param rm Request monitor returning whether there is at least one context * that can be detached from the debugger. */ void canDetachDebuggerFromSomeProcesses(IDMContext[] dmcs, DataRequestMonitor<Boolean> rm); /** * Checks whether it is possible to detach the debugger from all of the specified processes. * * @param dmc The contexts to detach the debugger from. Each context * should have {@link IContainerDMContext} as an ancestor. * @param rm Request monitor returning whether all processes specified by the given contexts * that can be detached from the debugger. */ void canDetachDebuggerFromAllProcesses(IDMContext[] dmcs, DataRequestMonitor<Boolean> rm); /** * Request to detach debugger from the specified processes. Only contexts * that are in a state that can be detached will be affected, others will be ignored. * * @param dmc The contexts to detach the debugger from. Each context * should have {@link IContainerDMContext} as an ancestor. */ void detachDebuggerFromProcesses(IDMContext[] dmcs, RequestMonitor rm); }