gnu.classpath.jdwp.transport
Class JdwpPacket
All command and reply packets in JDWP share
common header type information:
length (4 bytes) : size of entire packet, including length
id (4 bytes) : unique packet id
flags (1 byte) : flag byte
[command packet stuff | reply packet stuff]
data (variable) : unique command-/reply-specific data
This class deal with everything except the command- and reply-specific
data, which get handled in
JdwpCommandPacket
and
JdwpReplyPacket
.
protected static int | JDWP_FLAG_REPLY
|
protected static int | MINIMUM_SIZE - Minimum packet size excluding sub-class data
( length (4) + id (4) + flags (1) )
|
protected byte[] | _data - Packet-specific data
|
protected byte | _flags - Packet flags
|
protected int | _id - Id of command/reply
|
protected static int | _last_id
|
static JdwpPacket | fromBytes(byte[] bytes) - Convert the given bytes into a
JdwpPacket .
|
byte[] | getData() - Gets the command/reply-specific data in this packet
|
byte | getFlags() - Returns the packet flags
|
int | getId() - Returns the packet id
|
int | getLength() - Returns the length of this entire packet
|
protected abstract int | myFromBytes(byte[] bytes, int index) - Allow subclasses to initialize from data
|
protected abstract void | myWrite(DataOutputStream dos) - Put subclass information onto the stream
|
void | setData(byte[] data) - Sets the command/reply-specific data in this packet
|
void | setFlags(byte flags) - Sets the packet flags
|
void | setId(int id) - Sets the packet id
|
void | write(DataOutputStream dos) - Writes the packet to the output stream
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
MINIMUM_SIZE
protected static final int MINIMUM_SIZE
Minimum packet size excluding sub-class data
( length (4) + id (4) + flags (1) )
_data
protected byte[] _data
Packet-specific data
_flags
protected byte _flags
Packet flags
_id
protected int _id
Id of command/reply
JdwpPacket
public JdwpPacket(JdwpPacket pkt)
Constructs a JdwpPacket
with the id
from the given packet.
pkt
- a packet whose id will be used in this new packet
fromBytes
public static JdwpPacket fromBytes(byte[] bytes)
Convert the given bytes into a JdwpPacket
. Uses the
abstract method myFromBytes
to allow subclasses to
process data.
If the given data does not represent a valid JDWP packet, it returns
null
.
bytes
- packet data from the wire
- number of bytes in
bytes
processed
getData
public byte[] getData()
Gets the command/reply-specific data in this packet
getFlags
public byte getFlags()
Returns the packet flags
getId
public int getId()
Returns the packet id
getLength
public int getLength()
Returns the length of this entire packet
myFromBytes
protected abstract int myFromBytes(byte[] bytes,
int index)
Allow subclasses to initialize from data
bytes
- packet data from the wireindex
- index into bytes
to start processing
- number of bytes in
bytes
processed
setData
public void setData(byte[] data)
Sets the command/reply-specific data in this packet
setFlags
public void setFlags(byte flags)
Sets the packet flags
setId
public void setId(int id)
Sets the packet id
JdwpPacket.java -- Base class for JDWP command and reply packets
Copyright (C) 2005 Free Software Foundation
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.