JdwpPacket.java (write): New method.

* 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.

From-SVN: r101472
This commit is contained in:
Keith Seitz 2005-06-30 18:05:10 +00:00 committed by Keith Seitz
parent 1b0618bfe6
commit afe8d701ba
5 changed files with 53 additions and 50 deletions

View File

@ -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 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/transport/JdwpConnection.java (sendEvent): New

View File

@ -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 ());
}
}

View File

@ -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);
}
/**

View File

@ -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);
}
}

View File

@ -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 ());
}
}