[Pydev-cvs] org.python.pydev.debug/src/org/python/pydev/debug/model/remote ChangeVariableCommand.j
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2007-02-07 00:46:16
|
Update of /cvsroot/pydev/org.python.pydev.debug/src/org/python/pydev/debug/model/remote In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6588/src/org/python/pydev/debug/model/remote Modified Files: DebuggerWriter.java AbstractDebuggerCommand.java Added Files: ChangeVariableCommand.java Log Message: Making change value in debugger. Index: AbstractDebuggerCommand.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.debug/src/org/python/pydev/debug/model/remote/AbstractDebuggerCommand.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** AbstractDebuggerCommand.java 20 May 2006 14:09:54 -0000 1.8 --- AbstractDebuggerCommand.java 7 Feb 2007 00:46:14 -0000 1.9 *************** *** 49,52 **** --- 49,53 ---- static public final int CMD_EXEC_EXPRESSION = 115; static public final int CMD_WRITE_TO_CONSOLE = 116; + static public final int CMD_CHANGE_VARIABLE = 117; static public final int CMD_ERROR = 901; static public final int CMD_VERSION = 501; Index: DebuggerWriter.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev.debug/src/org/python/pydev/debug/model/remote/DebuggerWriter.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** DebuggerWriter.java 17 Apr 2006 02:06:17 -0000 1.4 --- DebuggerWriter.java 7 Feb 2007 00:46:14 -0000 1.5 *************** *** 7,74 **** /** ! * Writer writes debugger commands to the network. ! * Use postCommand to put new ones in queue. */ public class DebuggerWriter implements Runnable { ! /** * connection socket */ ! private Socket socket; ! /** * a list of RemoteDebuggerCommands */ ! private ArrayList cmdQueue = new ArrayList(); ! private OutputStreamWriter out; ! private boolean done = false; ! public DebuggerWriter(Socket s) throws IOException { ! socket = s; ! out = new OutputStreamWriter(s.getOutputStream()); ! } ! ! /** ! * Add command for processing ! */ ! public void postCommand(AbstractDebuggerCommand cmd) { ! synchronized(cmdQueue) { ! cmdQueue.add(cmd); ! } ! } ! ! public void done() { ! this.done = true; ! } ! /** ! * Loops and writes commands to the output ! */ ! public void run() { ! while (!done) { ! AbstractDebuggerCommand cmd = null; ! synchronized (cmdQueue) { ! if (cmdQueue.size() > 0) ! cmd = (AbstractDebuggerCommand) cmdQueue.remove(0); ! } ! try { ! if (cmd != null) { ! cmd.aboutToSend(); ! out.write(cmd.getOutgoing()); ! out.write("\n"); ! out.flush(); ! } ! synchronized (this) { ! Thread.sleep(100); ! } ! } catch (InterruptedException e) { ! done = true; ! } catch (IOException e1) { ! done = true; ! } ! if ((socket == null) || !socket.isConnected()) { ! done = true; ! } ! } ! } } --- 7,76 ---- /** ! * Writer writes debugger commands to the network. Use postCommand to put new ! * ones in queue. */ public class DebuggerWriter implements Runnable { ! /** * connection socket */ ! private Socket socket; ! /** * a list of RemoteDebuggerCommands */ ! private ArrayList cmdQueue = new ArrayList(); ! private OutputStreamWriter out; ! private boolean done = false; ! ! public DebuggerWriter(Socket s) throws IOException { ! socket = s; ! out = new OutputStreamWriter(s.getOutputStream()); ! } ! ! /** ! * Add command for processing ! */ ! public void postCommand(AbstractDebuggerCommand cmd) { ! synchronized (cmdQueue) { ! cmdQueue.add(cmd); ! } ! } ! ! public void done() { ! this.done = true; ! } ! ! /** ! * Loops and writes commands to the output ! */ ! public void run() { ! while (!done) { ! AbstractDebuggerCommand cmd = null; ! synchronized (cmdQueue) { ! if (cmdQueue.size() > 0) ! cmd = (AbstractDebuggerCommand) cmdQueue.remove(0); ! } ! try { ! if (cmd != null) { ! cmd.aboutToSend(); ! out.write(cmd.getOutgoing()); ! out.write("\n"); ! out.flush(); ! } ! synchronized (this) { ! Thread.sleep(100); ! } ! } catch (InterruptedException e) { ! done = true; ! } catch (IOException e1) { ! done = true; ! } ! if ((socket == null) || !socket.isConnected()) { ! done = true; ! } ! } ! } } --- NEW FILE: ChangeVariableCommand.java --- /* * Author: atotic * Created on Apr 30, 2004 * License: Common Public License v1.0 */ package org.python.pydev.debug.model.remote; /** * ChangeVariable network command. * * ChangeVariable gets the value of the variable from network as XML. */ public class ChangeVariableCommand extends AbstractDebuggerCommand { String locator; boolean isError = false; int responseCode; String payload; String expression; public ChangeVariableCommand(AbstractRemoteDebugger debugger, String locator, String expression) { super(debugger); this.locator = locator; this.expression = expression; } public String getOutgoing() { return makeCommand(getCommandId(), sequence, locator+"\t"+expression); } public boolean needResponse() { return false; } protected int getCommandId() { return CMD_CHANGE_VARIABLE; } } |