package net.sourceforge.phpeclipse.xdebug.core; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugStackFrame; import net.sourceforge.phpeclipse.xdebug.php.model.XDebugThread; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.debug.core.DebugException; import org.eclipse.debug.core.model.IBreakpoint; import org.eclipse.debug.core.model.IStackFrame; import org.eclipse.debug.core.model.IVariable; import net.sourceforge.phpeclipse.xdebug.core.xdebug.ResponseListener.DebugResponse; public interface IDebugConnection { /** * * @param featureName * @return true if debugger supports feature */ DebugResponse featureGet(String featureName); boolean featureSet(String featureName, String value); DebugResponse sendRequestA(String command, String parameter); /** * * @param breakpoint breakpoint to set * @throws DebugException */ void addBreakpoint(IBreakpoint breakpoint, IPath filePath) throws DebugException; /** * * @param breakpoint breakpoint to remove * @throws DebugException */ void removeBreakpoint(IBreakpoint breakpoint) throws DebugException; /** * * @param thread * @return stackframes * @throws DebugException */ IStackFrame[] getStackFrames(XDebugThread thread) throws DebugException; /** * Single stepOver the interpreter. * * @throws DebugException if the request fails */ void stepOver() throws DebugException; /** * Single Stepinto the interpreter. * * @throws DebugException if the request fails * @throws */ void stepInto() throws DebugException; /** * Single stepOut the interpreter. * * @throws DebugException if the request fails */ void stepOut() throws DebugException; /** * Resume the debug process. * * @throws DebugException if the request fails */ void run() throws DebugException; /** * Stops the debug process. * * @throws DebugException if the request fails */ void stop() throws DebugException; boolean isClosed(); /** * * @param name variable name * @param value value of the variable * @return true if successfull */ public boolean setVarValue(String name, String value); boolean isInitialized(); /** * Get the SessionID of the current Connection. * * @throws DebugException if the request fails */ String getSessionID(); void setResponseListerner(Job listener); void startListener(); /** * * @param frame * @param level context-level * @return the variables for the context */ public IVariable[] getVariables(XDebugStackFrame frame ,int level); }