package org.eclipse.dltk.internal.debug.core.model; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.ISuspendResume; import org.eclipse.debug.core.model.ITerminate; import org.eclipse.dltk.dbgp.IDbgpThreadAcceptor; import org.eclipse.dltk.debug.core.model.IScriptDebugThreadConfigurator; import org.eclipse.dltk.debug.core.model.IScriptThread; import org.eclipse.dltk.internal.debug.core.model.operations.DbgpDebugger; public interface IScriptThreadManager extends IDbgpThreadAcceptor, ITerminate, ISuspendResume { // Listener void addListener(IScriptThreadManagerListener listener); void removeListener(IScriptThreadManagerListener listener); // Thread management boolean hasThreads(); IScriptThread[] getThreads(); void terminateThread(IScriptThread thread); boolean isWaitingForThreads(); void sendTerminationRequest() throws DebugException; public void refreshThreads(); /** * Used to configure thread with additional DBGp features, etc. */ void configureThread(DbgpDebugger engine, ScriptThread scriptThread); public void setScriptThreadConfigurator( IScriptDebugThreadConfigurator configurator); }