]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
JdwpConnection.java (sendEvent): New method.
authorKeith Seitz <keiths@redhat.com>
Thu, 30 Jun 2005 18:00:25 +0000 (18:00 +0000)
committerKeith Seitz <kseitz@gcc.gnu.org>
Thu, 30 Jun 2005 18:00:25 +0000 (18:00 +0000)
        * gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New
        method.
        (_bytes): New member.
        (_doStream): New member.
        (JdwpConnection): Initialize new members.

From-SVN: r101471

libjava/ChangeLog
libjava/gnu/classpath/jdwp/transport/JdwpConnection.java

index 4a3f7468c032d713654dd87e066599fb712eb938..29dcb15654d1623c4af59264383d817698c12cf3 100644 (file)
@@ -1,3 +1,11 @@
+2005-06-30  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New
+       method.
+       (_bytes): New member.
+       (_doStream): New member.
+       (JdwpConnection): Initialize new members.
+
 2005-06-29  Kelley Cook  <kcook@gcc.gnu.org>
 
        * all files: Update for new FSF address.
index 5ddf86c863afda724595215d50d23750a3dc36a4..ffc8a17673885c904b80a35d47115981ed33a863 100644 (file)
@@ -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 <code>JdwpConnection</code> 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 <code>JdwpPacket</code> 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
    */