summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2005-06-30 18:07:25 +0000
committerKeith Seitz <keiths@redhat.com>2005-06-30 18:07:25 +0000
commit35e2b1db037e9522de92d2f97cc4f18f44aa475b (patch)
treea9bbb92cf06f910c9cb07b6e5ea32a0985575ca2
parent2938ef77ad562b7a087a087a880b956f2f1c2d5d (diff)
downloadclasspath-35e2b1db037e9522de92d2f97cc4f18f44aa475b.tar.gz
* gnu/classpath/jdwp/transport/JdwpPacket.java (write): New method.
(myWrite): New abstract method. (toBytes): Remove. (myToBytes): Remove. * gnu/classpath/jdwp/transport/JdwpReplyPacket.java (myWrite): New method. * gnu/classpath/jdwp/transport/JdwpCommandPacket.java (myWrite): New method. * gnu/classpath/jdwp/transport/JdwpConnection.java (sendPacket): Use JdwpPacket.write instead of JdwpPacket.toBytes.
-rw-r--r--ChangeLog13
-rw-r--r--gnu/classpath/jdwp/transport/JdwpCommandPacket.java14
-rw-r--r--gnu/classpath/jdwp/transport/JdwpConnection.java3
-rw-r--r--gnu/classpath/jdwp/transport/JdwpPacket.java58
-rw-r--r--gnu/classpath/jdwp/transport/JdwpReplyPacket.java15
5 files changed, 53 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index 48b4fe549..6d294f2b5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2005-06-30 Keith Seitz <keiths@redhat.com>
+
+ * gnu/classpath/jdwp/transport/JdwpPacket.java (write): New method.
+ (myWrite): New abstract method.
+ (toBytes): Remove.
+ (myToBytes): Remove.
+ * gnu/classpath/jdwp/transport/JdwpReplyPacket.java (myWrite): New
+ method.
+ * gnu/classpath/jdwp/transport/JdwpCommandPacket.java (myWrite): New
+ method.
+ * gnu/classpath/jdwp/transport/JdwpConnection.java (sendPacket): Use
+ JdwpPacket.write instead of JdwpPacket.toBytes.
+
2005-06-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
* gnu/java/locale/LocaleHelper.java:
diff --git a/gnu/classpath/jdwp/transport/JdwpCommandPacket.java b/gnu/classpath/jdwp/transport/JdwpCommandPacket.java
index cf193a2ed..eb86ce871 100644
--- a/gnu/classpath/jdwp/transport/JdwpCommandPacket.java
+++ b/gnu/classpath/jdwp/transport/JdwpCommandPacket.java
@@ -39,6 +39,9 @@ exception statement from your version. */
package gnu.classpath.jdwp.transport;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
/**
* A class representing a JDWP command packet.
* This class adds command set and command to the packet header
@@ -137,13 +140,10 @@ public class JdwpCommandPacket extends JdwpPacket
}
// Writes the command packet data into the given buffer
- protected int myToBytes (byte[] bytes, int index)
+ protected void myWrite (DataOutputStream dos)
+ throws IOException
{
- // Need to add command set & command
- int i = 0;
- bytes[index + i++] = getCommandSet ();
- bytes[index + i++] = getCommand ();
-
- return i;
+ dos.writeByte (getCommandSet ());
+ dos.writeByte (getCommand ());
}
}
diff --git a/gnu/classpath/jdwp/transport/JdwpConnection.java b/gnu/classpath/jdwp/transport/JdwpConnection.java
index 3fae2720e..d00c56452 100644
--- a/gnu/classpath/jdwp/transport/JdwpConnection.java
+++ b/gnu/classpath/jdwp/transport/JdwpConnection.java
@@ -258,8 +258,7 @@ public class JdwpConnection
public void sendPacket (JdwpPacket pkt)
throws IOException
{
- byte[] data = pkt.toBytes ();
- _outStream.write (data, 0, data.length);
+ pkt.write (_outStream);
}
/**
diff --git a/gnu/classpath/jdwp/transport/JdwpPacket.java b/gnu/classpath/jdwp/transport/JdwpPacket.java
index 1a6a96254..29aed0178 100644
--- a/gnu/classpath/jdwp/transport/JdwpPacket.java
+++ b/gnu/classpath/jdwp/transport/JdwpPacket.java
@@ -39,6 +39,9 @@ exception statement from your version. */
package gnu.classpath.jdwp.transport;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
/**
* All command and reply packets in JDWP share
* common header type information:
@@ -238,49 +241,38 @@ public abstract class JdwpPacket
return null;
}
- // Put subclass information into bytes
- protected abstract int myToBytes (byte[] bytes, int index);
+ /**
+ * Put subclass information onto the stream
+ *
+ * @param dos the output stream to which to write
+ */
+ protected abstract void myWrite (DataOutputStream dos)
+ throws IOException;
- // Convert this packet to it byte representation (ready to send on the wire)
- // NOTE: All integers should be big-endian.
- public byte[] toBytes ()
+ /**
+ * Writes the packet to the output stream
+ *
+ * @param dos the output stream to which to write the packet
+ */
+ public void write (DataOutputStream dos)
+ throws IOException
{
- // Allocate a new array to hold contents of packet
- int length = getLength ();
- byte[] bytes = new byte[length];
-
- int i = 0;
-
- //
- // Packet layout: length, id, flags, packet-specific, data (optional)
- //
-
// length
- bytes[i++] = (byte) (length >>> 24);
- bytes[i++] = (byte) (length >>> 16);
- bytes[i++] = (byte) (length >>> 8);
- bytes[i++] = (byte) length;
+ int length = getLength ();
+ dos.writeInt (length);
- // id
- bytes[i++] = (byte) (getId () >>> 24);
- bytes[i++] = (byte) (getId () >>> 16);
- bytes[i++] = (byte) (getId () >>> 8);
- bytes[i++] = (byte) getId ();
+ // ID
+ dos.writeInt (getId ());
// flag
- bytes[i++] = getFlags ();
+ dos.writeByte (getFlags ());
// packet-specific stuff
- i += myToBytes (bytes, i);
+ myWrite (dos);
// data (if any)
byte[] data = getData ();
- if (data.length > 0 && i < length)
- {
- // Would it pay to be over cautious?
- System.arraycopy (data, 0, bytes, i, data.length);
- }
-
- return bytes;
+ if (data != null && data.length > 0)
+ dos.write (data, 0, data.length);
}
}
diff --git a/gnu/classpath/jdwp/transport/JdwpReplyPacket.java b/gnu/classpath/jdwp/transport/JdwpReplyPacket.java
index 1aa2dd344..b23b0fda3 100644
--- a/gnu/classpath/jdwp/transport/JdwpReplyPacket.java
+++ b/gnu/classpath/jdwp/transport/JdwpReplyPacket.java
@@ -39,6 +39,9 @@ exception statement from your version. */
package gnu.classpath.jdwp.transport;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
/**
* A class represents a JDWP reply packet.
* This class adds an error code to the packet header information
@@ -115,13 +118,9 @@ public class JdwpReplyPacket extends JdwpPacket
}
// Writes the command packet data into the given buffer
- protected int myToBytes (byte[] bytes, int index)
- {
- // Need to add error code
- int i = 0;
- bytes[index + i++] = (byte) (getErrorCode () >>> 8);
- bytes[index + i++] = (byte) getErrorCode ();
-
- return i;
+ protected void myWrite (DataOutputStream dos)
+ throws IOException
+ {
+ dos.writeShort (getErrorCode ());
}
}