ij-16.png   inspectorJ -- JavaTM Profiler
sf project site browse source checkout source
SourceForge.net Logo



inspectorj::jdwp::JDWPPacket Class Reference

#include <jdwppacket.h>

Inheritance diagram for inspectorj::jdwp::JDWPPacket:

Inheritance graph
[legend]
List of all members.

Detailed Description

JDWPPacket is the base class for JDWPCommand and JDWPReply.

JDWPPacket provides functions for reading and writing data to the jdwp packets.

Author:
James May

Definition at line 45 of file jdwppacket.h.

Public Member Functions

 JDWPPacket ()
 JDWPPacket constructor.
virtual ~JDWPPacket ()
 JDWPPacket destructor.
virtual jint getLength ()
 Returns the total length of this packet (header + data).
virtual jbyte getPacketType ()=0
virtual jint getId ()=0
virtual short getErrorCode ()
 Returns the packets error code.
char * getDataBytes ()
 Returns this packet's data.
virtual JDWPPacketcopy ()=0
JDWPPacketoperator<< (jbyte &byte)
 Write a jbyte to the packet's data payload.
JDWPPacketoperator<< (bool &b)
 Write a bool to the packet's data payload.
JDWPPacketoperator<< (jint &i)
 Write sizeof(jint) bytes to the packet's data payload.
JDWPPacketoperator<< (qint64 &i)
 Write the 8 byte value to the packet's data payload.
JDWPPacketoperator<< (QString &s)
 Write a string to the packet's data payload.
JDWPPacketoperator<< (FieldID &fid)
 Write a FieldID to the packet's data payload.
JDWPPacketoperator<< (ObjectID &oid)
 Write an ObjectID to the packet's data payload.
JDWPPacketoperator<< (MethodID &mid)
 Write a MethodID to the packet's data payload.
JDWPPacketoperator<< (ReferenceTypeID &rid)
 Write a ReferenceTypeID to the packet's data payload.
JDWPPacketoperator<< (FrameID &fid)
 Write a FrameID to the packet's data payload.
JDWPPacketoperator>> (jbyte &b)
 Read 1 byte of data from the packet and store in a jbyte reference.
JDWPPacketoperator>> (bool &b)
 Read a bool value from the packet and store in a bool reference.
JDWPPacketoperator>> (qint32 &i)
 Read 4 bytes and store in the reference i.
JDWPPacketoperator>> (qint64 &i)
 Read 8 bytes from the packet and store in the reference i.
JDWPPacketoperator>> (QString &s)
 Read string data from the packet and store in a QString reference.
JDWPPacketoperator>> (FieldID &fid)
 Read a FieldID from the packets data payload.
JDWPPacketoperator>> (ObjectID &oid)
 Read an ObjectID from the packets data payload.
JDWPPacketoperator>> (MethodID &mid)
 Read a MethodID from the packets data payload.
JDWPPacketoperator>> (ReferenceTypeID &rid)
 Read a ReferenceTypeID from the packets data payload.
JDWPPacketoperator>> (FrameID &fid)
 Read a FrameID from the packets data payload.

Static Public Member Functions

static void initIDSizes (JDWPPacket &)
 Id sizes can vary across different jvm implementations, therfore we must initialize these sizes after we've attached to the target jvm.

Protected Member Functions

void setReadMode ()
 Set the data stream's IODevice to ReadOnly.
void setWriteMode ()
 Set the data stream's IODevice to WriteOnly.

Protected Attributes

QDataStream * data
 The packet's data stream for reading/writing data.
QByteArray bytes
 The actual data payload.

Static Protected Attributes

static int FIELD_ID_SIZE
 The vm specific size of field IDs.
static int OBJECT_ID_SIZE
 The vm specific size of object IDs.
static int METHOD_ID_SIZE
 The vm specific size of method IDs.
static int REFERENCE_TYPE_ID_SIZE
 The vm specific size of reference type IDs.
static int FRAME_ID_SIZE
 The vm specific size of frame IDs.


Constructor & Destructor Documentation

JDWPPacket::JDWPPacket (  ) 

JDWPPacket constructor.

Definition at line 44 of file jdwppacket.cpp.

JDWPPacket::~JDWPPacket (  )  [virtual]

JDWPPacket destructor.

Definition at line 51 of file jdwppacket.cpp.

References data.


Member Function Documentation

jint JDWPPacket::getLength (  )  [virtual]

Returns the total length of this packet (header + data).

Definition at line 104 of file jdwppacket.cpp.

References bytes, and inspectorj::jdwp::JDWP_HEADER_LENGTH.

Referenced by inspectorj::client::ClientPacketHandler::sendJDWPCommand(), and inspectorj::agent::AgentSocket::writeReply().

short JDWPPacket::getErrorCode (  )  [virtual]

Returns the packets error code.

If the packet is a command packet, this function returns ERR_NONE.

Reimplemented in inspectorj::jdwp::JDWPReply.

Definition at line 96 of file jdwppacket.cpp.

References inspectorj::jdwp::ERR_NONE.

Referenced by inspectorj::toolset::ClassToolSet::getBytecodeString(), and inspectorj::client::ClientPacketHandler::handleJDWPError().

char * JDWPPacket::getDataBytes (  ) 

Returns this packet's data.

Parameters:
dataBytes The packet's data is copied to dataBytes.

Definition at line 113 of file jdwppacket.cpp.

References bytes.

Referenced by inspectorj::client::ClientPacketHandler::sendJDWPCommand(), and inspectorj::agent::AgentSocket::writeReply().

void JDWPPacket::initIDSizes ( JDWPPacket packet  )  [static]

Id sizes can vary across different jvm implementations, therfore we must initialize these sizes after we've attached to the target jvm.

The ClientPacketHandler facilitates this by calling the VM-IDSizes command after a successful handshake and registering this function as a callback.

Definition at line 83 of file jdwppacket.cpp.

References FIELD_ID_SIZE, FRAME_ID_SIZE, METHOD_ID_SIZE, OBJECT_ID_SIZE, and REFERENCE_TYPE_ID_SIZE.

JDWPPacket & JDWPPacket::operator<< ( jbyte &  b  ) 

Write a jbyte to the packet's data payload.

Parameters:
b The jbyte to add to the packet's data

Definition at line 127 of file jdwppacket.cpp.

References data, and setWriteMode().

JDWPPacket & JDWPPacket::operator<< ( bool &  b  ) 

Write a bool to the packet's data payload.

Parameters:
b The bool to add to the packet's data

Definition at line 138 of file jdwppacket.cpp.

References data, and setWriteMode().

JDWPPacket & JDWPPacket::operator<< ( jint &  i  ) 

Write sizeof(jint) bytes to the packet's data payload.

Parameters:
i The jint reference to write data to.

Definition at line 153 of file jdwppacket.cpp.

References data, and setWriteMode().

JDWPPacket & JDWPPacket::operator<< ( qint64 &  i  ) 

Write the 8 byte value to the packet's data payload.

Parameters:
i The qint64 reference to write to the packet's data.

Definition at line 181 of file jdwppacket.cpp.

References data, and setWriteMode().

JDWPPacket & JDWPPacket::operator<< ( QString &  s  ) 

Write a string to the packet's data payload.

The string's length is added to the packet's data followed by the strings raw bytes.

Parameters:
s The string to write to the packet's data

Definition at line 193 of file jdwppacket.cpp.

References data, and setWriteMode().

JDWPPacket & JDWPPacket::operator<< ( FieldID fid  ) 

Write a FieldID to the packet's data payload.

Parameters:
fid The FieldID

Definition at line 225 of file jdwppacket.cpp.

References FIELD_ID_SIZE, and inspectorj::jdwp::FieldID::value.

JDWPPacket & JDWPPacket::operator<< ( ObjectID oid  ) 

Write an ObjectID to the packet's data payload.

Parameters:
oid The ObjectID

Definition at line 209 of file jdwppacket.cpp.

References OBJECT_ID_SIZE, and inspectorj::jdwp::ObjectID::value.

JDWPPacket & JDWPPacket::operator<< ( MethodID mid  ) 

Write a MethodID to the packet's data payload.

Parameters:
mid The MethodID

Definition at line 242 of file jdwppacket.cpp.

References METHOD_ID_SIZE, and inspectorj::jdwp::MethodID::value.

JDWPPacket & JDWPPacket::operator<< ( ReferenceTypeID rid  ) 

Write a ReferenceTypeID to the packet's data payload.

Parameters:
rid The ReferenceTypeID

Definition at line 258 of file jdwppacket.cpp.

References REFERENCE_TYPE_ID_SIZE, and inspectorj::jdwp::ReferenceTypeID::value.

JDWPPacket & JDWPPacket::operator<< ( FrameID fid  ) 

Write a FrameID to the packet's data payload.

Parameters:
fid The FrameID

Definition at line 274 of file jdwppacket.cpp.

References FRAME_ID_SIZE, and inspectorj::jdwp::FrameID::value.

JDWPPacket & JDWPPacket::operator>> ( jbyte &  b  ) 

Read 1 byte of data from the packet and store in a jbyte reference.

Parameters:
b The jbyte reference to write data to.

Definition at line 294 of file jdwppacket.cpp.

References data, and setReadMode().

JDWPPacket & JDWPPacket::operator>> ( bool &  b  ) 

Read a bool value from the packet and store in a bool reference.

Parameters:
b The bool reference to write data to.

Definition at line 306 of file jdwppacket.cpp.

References data, and setReadMode().

JDWPPacket & JDWPPacket::operator>> ( qint32 &  i  ) 

Read 4 bytes and store in the reference i.

Parameters:
i The qint32 reference to write data to.

Definition at line 321 of file jdwppacket.cpp.

References data, and setReadMode().

JDWPPacket & JDWPPacket::operator>> ( qint64 &  i  ) 

Read 8 bytes from the packet and store in the reference i.

Parameters:
i The qint64 reference to write data to.

Definition at line 332 of file jdwppacket.cpp.

References data, and setReadMode().

JDWPPacket & JDWPPacket::operator>> ( QString &  s  ) 

Read string data from the packet and store in a QString reference.

The JDWP protocol specifies that string data is preceeded by a 4 byte value containing the string's length.

Parameters:
s A QString reference to write data to.

Definition at line 346 of file jdwppacket.cpp.

References data, and setReadMode().

JDWPPacket & JDWPPacket::operator>> ( FieldID fid  ) 

Read a FieldID from the packets data payload.

Parameters:
fid The FieldID

Definition at line 388 of file jdwppacket.cpp.

References FIELD_ID_SIZE, and inspectorj::jdwp::FieldID::value.

JDWPPacket & JDWPPacket::operator>> ( ObjectID oid  ) 

Read an ObjectID from the packets data payload.

Parameters:
oid The ObjectID

Definition at line 371 of file jdwppacket.cpp.

References OBJECT_ID_SIZE, and inspectorj::jdwp::ObjectID::value.

JDWPPacket & JDWPPacket::operator>> ( MethodID mid  ) 

Read a MethodID from the packets data payload.

Parameters:
mid The MethodID

Definition at line 405 of file jdwppacket.cpp.

References METHOD_ID_SIZE, and inspectorj::jdwp::MethodID::value.

JDWPPacket & JDWPPacket::operator>> ( ReferenceTypeID rid  ) 

Read a ReferenceTypeID from the packets data payload.

Parameters:
rid The ReferenceTypeID

Definition at line 423 of file jdwppacket.cpp.

References REFERENCE_TYPE_ID_SIZE, and inspectorj::jdwp::ReferenceTypeID::value.

JDWPPacket & JDWPPacket::operator>> ( FrameID fid  ) 

Read a FrameID from the packets data payload.

Parameters:
fid The FrameID

Definition at line 440 of file jdwppacket.cpp.

References FRAME_ID_SIZE, and inspectorj::jdwp::FrameID::value.

void JDWPPacket::setReadMode (  )  [protected]

Set the data stream's IODevice to ReadOnly.

Definition at line 60 of file jdwppacket.cpp.

References data.

Referenced by operator>>().

void JDWPPacket::setWriteMode (  )  [protected]

Set the data stream's IODevice to WriteOnly.

Definition at line 70 of file jdwppacket.cpp.

References data.

Referenced by operator<<().


Member Data Documentation

int JDWPPacket::FIELD_ID_SIZE [static, protected]

The vm specific size of field IDs.

Definition at line 136 of file jdwppacket.h.

Referenced by initIDSizes(), operator<<(), and operator>>().

int JDWPPacket::OBJECT_ID_SIZE [static, protected]

The vm specific size of object IDs.

Definition at line 139 of file jdwppacket.h.

Referenced by initIDSizes(), operator<<(), and operator>>().

int JDWPPacket::METHOD_ID_SIZE [static, protected]

The vm specific size of method IDs.

Definition at line 142 of file jdwppacket.h.

Referenced by initIDSizes(), operator<<(), and operator>>().

int JDWPPacket::REFERENCE_TYPE_ID_SIZE [static, protected]

The vm specific size of reference type IDs.

Definition at line 145 of file jdwppacket.h.

Referenced by initIDSizes(), operator<<(), and operator>>().

int JDWPPacket::FRAME_ID_SIZE [static, protected]

The vm specific size of frame IDs.

Definition at line 148 of file jdwppacket.h.

Referenced by initIDSizes(), operator<<(), and operator>>().

QDataStream* inspectorj::jdwp::JDWPPacket::data [protected]

The packet's data stream for reading/writing data.

Definition at line 151 of file jdwppacket.h.

Referenced by inspectorj::jdwp::JDWPCommand::JDWPCommand(), inspectorj::jdwp::JDWPReply::JDWPReply(), operator<<(), operator>>(), setReadMode(), setWriteMode(), and ~JDWPPacket().

QByteArray inspectorj::jdwp::JDWPPacket::bytes [protected]

The actual data payload.

Definition at line 154 of file jdwppacket.h.

Referenced by getDataBytes(), getLength(), inspectorj::jdwp::JDWPCommand::JDWPCommand(), and inspectorj::jdwp::JDWPReply::JDWPReply().


The documentation for this class was generated from the following files:
Generated on Sun Aug 19 17:08:17 2007 for inspectorJ by  doxygen 1.5.1