1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00

Bug 440387 - Allow to easily extend ServicesLaunchSequence

Change-Id: Ife35c51415fc9a5a07a5327a2eed3e564b3429c8
Signed-off-by: Marc Khouzam <marc.khouzam@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/30459
Tested-by: Hudson CI
Reviewed-by: Mikhail Khodjaiants <mikhailkhod@googlemail.com>
This commit is contained in:
Marc Khouzam 2014-07-24 16:15:03 -04:00
parent 2986eab315
commit 22b4459a37

View file

@ -26,6 +26,7 @@ import org.eclipse.cdt.dsf.concurrent.DataRequestMonitor;
import org.eclipse.cdt.dsf.concurrent.ImmediateExecutor;
import org.eclipse.cdt.dsf.concurrent.Query;
import org.eclipse.cdt.dsf.concurrent.RequestMonitorWithProgress;
import org.eclipse.cdt.dsf.concurrent.Sequence;
import org.eclipse.cdt.dsf.concurrent.ThreadSafe;
import org.eclipse.cdt.dsf.debug.service.IDsfDebugServicesFactory;
import org.eclipse.cdt.dsf.debug.sourcelookup.DsfSourceLookupDirector;
@ -168,8 +169,7 @@ public class GdbLaunchDelegate extends AbstractCLaunchDelegate2
// Create and invoke the launch sequence to create the debug control and services
IProgressMonitor subMon1 = new SubProgressMonitor(monitor, 4, SubProgressMonitor.PREPEND_MAIN_LABEL_TO_SUBTASK);
final ServicesLaunchSequence servicesLaunchSequence =
new ServicesLaunchSequence(launch.getSession(), launch, subMon1);
Sequence servicesLaunchSequence = getServicesSequence(launch.getSession(), launch, subMon1);
launch.getSession().getExecutor().execute(servicesLaunchSequence);
boolean succeed = false;
@ -399,6 +399,19 @@ public class GdbLaunchDelegate extends AbstractCLaunchDelegate2
return new GdbLaunch(configuration, mode, locator);
}
/**
* Returns a sequence that will create and initialize the different DSF services.
* Subclasses that wish to add/remove services can override this method.
*
* @param session The current DSF session
* @param launch The current launch
* @param rm The progress monitor that is to be used to cancel the sequence if so desired.
* @since 4.5
*/
protected Sequence getServicesSequence(DsfSession session, ILaunch launch, IProgressMonitor rm) {
return new ServicesLaunchSequence(session, (GdbLaunch)launch, rm);
}
/**
* Creates and initializes the source locator for the given launch configuration and dsf session.
* @since 4.1