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:
parent
1b0618bfe6
commit
afe8d701ba
@ -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
|
||||
|
@ -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 ());
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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 ());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user