/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
package org.python.pydev.debug.model;
import java.io.IOException;
import java.net.Socket;
import org.eclipse.core.runtime.PlatformObject;
import org.python.pydev.debug.model.remote.AbstractDebuggerCommand;
import org.python.pydev.debug.model.remote.DebuggerReader;
import org.python.pydev.debug.model.remote.DebuggerWriter;
public class AbstractDebugTargetWithTransmission extends PlatformObject {
/**
* connection socket
*/
protected Socket socket;
/**
* reading thread
*/
protected DebuggerReader reader;
/**
* writing thread
*/
protected DebuggerWriter writer;
/**
* sequence seed for command numbers
*/
protected int sequence = -1;
/**
* @return next available debugger command sequence number
*/
public int getNextSequence() {
sequence += 2;
return sequence;
}
public void addToResponseQueue(AbstractDebuggerCommand cmd) {
if (reader != null) {
reader.addToResponseQueue(cmd);
}
}
public void postCommand(AbstractDebuggerCommand cmd) {
if (writer != null) {
writer.postCommand(cmd);
}
}
public void startTransmission(Socket socket2) throws IOException {
this.socket = socket2;
//socket = connector.getSocket();
this.reader = new DebuggerReader(socket, this);
this.writer = new DebuggerWriter(socket);
Thread t = new Thread(reader, "pydevd.reader");
t.start();
t = new Thread(writer, "pydevd.writer");
t.start();
}
}