From 24774b321dc5a19bd761d5cda67f3b2e91b67905 Mon Sep 17 00:00:00 2001 From: kseitz Date: Thu, 30 Jun 2005 18:00:25 +0000 Subject: * gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New method. (_bytes): New member. (_doStream): New member. (JdwpConnection): Initialize new members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101471 138bc75d-0d04-0410-961f-82ee72b054a4 --- .../classpath/jdwp/transport/JdwpConnection.java | 38 ++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) (limited to 'libjava/gnu/classpath/jdwp') diff --git a/libjava/gnu/classpath/jdwp/transport/JdwpConnection.java b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.java index 5ddf86c863a..ffc8a176738 100644 --- a/libjava/gnu/classpath/jdwp/transport/JdwpConnection.java +++ b/libjava/gnu/classpath/jdwp/transport/JdwpConnection.java @@ -40,7 +40,10 @@ exception statement from your version. */ package gnu.classpath.jdwp.transport; import gnu.classpath.jdwp.Jdwp; +import gnu.classpath.jdwp.event.Event; +import gnu.classpath.jdwp.event.EventRequest; +import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; @@ -64,7 +67,8 @@ public class JdwpConnection extends Thread { // The JDWP handshake - private static final byte[] _HANDSHAKE = {'J', 'D', 'W', 'P', '-', 'H', 'a', 'n', 'd', 's', 'h', 'a', 'k', 'e'}; + private static final byte[] _HANDSHAKE = {'J', 'D', 'W', 'P', '-', 'H', 'a', + 'n', 'd', 's', 'h', 'a', 'k', 'e'}; // Transport method private ITransport _transport; @@ -81,6 +85,12 @@ public class JdwpConnection // Output stream from transprot private DataOutputStream _outStream; + // A buffer used to construct the packet data + private ByteArrayOutputStream _bytes; + + // A DataOutputStream for the byte buffer + private DataOutputStream _doStream; + /** * Creates a new JdwpConnection instance * @@ -91,6 +101,8 @@ public class JdwpConnection _transport = transport; _commandQueue = new ArrayList (); _shutdown = false; + _bytes = new ByteArrayOutputStream (); + _doStream = new DataOutputStream (_bytes); } /** @@ -241,7 +253,7 @@ public class JdwpConnection * Send a packet to the debugger * * @param pkt a JdwpPacket to send - * @throws TransportException + * @throws IOException */ public void sendPacket (JdwpPacket pkt) throws IOException @@ -250,6 +262,28 @@ public class JdwpConnection _outStream.write (data, 0, data.length); } + /** + * Send an event notification to the debugger + * + * @param request the debugger request that wanted this event + * @param event the event + * @throws IOException + */ + public void sendEvent (EventRequest request, Event event) + throws IOException + { + JdwpPacket pkt; + + synchronized (_bytes) + { + _bytes.reset (); + pkt = event.toPacket (_doStream, request); + pkt.setData (_bytes.toByteArray ()); + } + + sendPacket (pkt); + } + /** * Shutdown the connection */ -- cgit v1.2.3