JdwpPacket
public
final
class
JdwpPacket
extends Object
| java.lang.Object | |
| ↳ | com.android.tradefed.device.server.jdwp.chunkhandler.JdwpPacket |
حزمة JDWP، تقع في بداية ByteBuffer في مكان ما
يتيح لنا ذلك تضمين "مؤشر" للبيانات مع نتائج فك ترميز الحزمة.
لا تتم مزامنة أي من العمليات هنا. إذا كانت سلاسل تنفيذ متعدّدة ستصل إلى ByteBuffers نفسها، ستكون المزامنة الخارجية مطلوبة.
استخدِم الدالة الإنشائية لإنشاء حزمة فارغة، أو استخدِم "findPacket()" لتضمين JdwpPacket في البيانات الحالية.
ملخّص
الثوابت | |
|---|---|
int |
JDWP_HEADER_LEN
|
الإنشاءات العامة | |
|---|---|
JdwpPacket(ByteBuffer buf)
أنشئ حزمة جديدة فارغة في "buf". |
|
الطُرق العامة | |
|---|---|
void
|
consume()
استهلاك حزمة JDWP |
void
|
copy(ByteBuffer into)
دالة مساعدة لنسخ الحزمة إلى مخزن مؤقت جديد |
static
JdwpPacket
|
findPacket(ByteBuffer buf)
|
static
JdwpPacket
|
findPacketHeader(ByteBuffer buf)
|
void
|
finishPacket(int cmdSet, int cmd, int payloadLength)
إنهاء حزمة تم إنشاؤها باستخدام newPacket() |
int
|
getId()
إرجاع معرّف الحزمة |
int
|
getLength()
لعرض طول الحزمة. |
static
int
|
getPacketLength(ByteBuffer buf)
عندما يحتوي "buf" على JdwpPackets، تكون أول 4 بايتات هي طول الحزمة. |
ByteBuffer
|
getPayload()
لعرض شريحة من مخزن مؤقت للبايتات، يتم وضعها بعد عنوان JDWP إلى بداية عنوان الجزء. |
boolean
|
is(int cmdSet, int cmd)
|
boolean
|
isEmpty()
تعرِض هذه السمة القيمة "true" إذا لم تكن حزمة JDWP هذه تحتوي على أي بيانات. |
boolean
|
isError()
تعرِض القيمة "true" إذا كانت حزمة JDWP هذه ردًا يتضمّن رمز خطأ غير صفري. |
boolean
|
isReply()
تعرض هذه السمة القيمة "true" إذا تم تصنيف حزمة JDWP هذه على أنّها ردّ. |
void
|
log(String action)
|
void
|
move(ByteBuffer buf)
"نقل" بيانات الحزمة من المخزن المؤقت الذي نستخدمه إلى buf في الموضع الحالي |
void
|
setPayload(ByteBuffer buf)
استبدِل حمولة الحزمة بمخزن مؤقت. |
String
|
toString()
|
void
|
write(SocketChannel chan)
اكتب حزمة البيانات إلى "chan". |
الثوابت
JDWP_HEADER_LEN
public static final int JDWP_HEADER_LEN
Constant Value: 11 (0x0000000b)
الإنشاءات العامة
JdwpPacket
public JdwpPacket (ByteBuffer buf)
أنشئ حزمة جديدة فارغة في "buf".
| المعلمات | |
|---|---|
buf |
ByteBuffer |
الطُرق العامة
استهلاك
public void consume ()
استهلاك حزمة JDWP
عند الدخول والخروج، يكون "الموضع" في نهاية البيانات في المخزن المؤقت.
نسخ
public void copy (ByteBuffer into)
دالة مساعدة لنسخ الحزمة إلى مخزن مؤقت جديد
| المعلمات | |
|---|---|
into |
ByteBuffer |
findPacket
public static JdwpPacket findPacket (ByteBuffer buf)
| المعلمات | |
|---|---|
buf |
ByteBuffer |
| المرتجعات | |
|---|---|
JdwpPacket |
|
findPacketHeader
public static JdwpPacket findPacketHeader (ByteBuffer buf)
| المعلمات | |
|---|---|
buf |
ByteBuffer |
| المرتجعات | |
|---|---|
JdwpPacket |
|
finishPacket
public void finishPacket (int cmdSet,
int cmd,
int payloadLength)إنهاء حزمة تم إنشاؤها باستخدام newPacket()
يؤدي ذلك دائمًا إلى إنشاء حزمة أوامر، مع الرقم التسلسلي التالي في التسلسل.
علينا استخدام "payloadLength" كمعلَمة لأنّه لا يمكننا معرفة الموضع في "الشريحة" التي تعرضها الدالة getPayload(). يمكننا استخراجها من عنوان الجزء، ولكن من المسموح أن يكون هناك أكثر من جزء واحد في حزمة JDWP.
عند الخروج، يشير "الموضع" إلى نهاية البيانات.
| المعلمات | |
|---|---|
cmdSet |
int |
cmd |
int |
payloadLength |
int |
getId
public int getId ()
إرجاع رقم تعريف الحزمة بالنسبة إلى حِزمة الرد، يتيح لنا ذلك مطابقة الرد مع الطلب الأصلي.
| المرتجعات | |
|---|---|
int |
|
getLength
public int getLength ()
لعرض طول الحزمة. ويشمل ذلك العنوان، لذا يبلغ طول الحزمة الفارغة 11 بايت.
| المرتجعات | |
|---|---|
int |
|
getPacketLength
public static int getPacketLength (ByteBuffer buf)
عندما يحتوي "buf" على JdwpPackets، تكون أول 4 بايتات هي طول الحزمة. تقرأ دالة المساعدة هذه أول 4 بايتات وتتحقّق من أنّ الطول يساوي على الأقل حجم عنوان JDWP.
| المعلمات | |
|---|---|
buf |
ByteBuffer: مخزن مؤقت يُفترض أنّه يحتوي على حزمة JDWP. |
| المرتجعات | |
|---|---|
int |
-1 إذا كان الطول غير صالح، وإلا يكون طول الحزمة. |
getPayload
public ByteBuffer getPayload ()
لعرض شريحة من مخزن مؤقت للبايتات، يتم وضعها بعد عنوان JDWP إلى بداية عنوان الجزء. سيتم ضبط الحد الأقصى للمخزن المؤقت على حجم الحمولة إذا كان الحجم معروفًا، وإذا كانت هذه حزمة قيد الإنشاء، سيتم ضبط الحد الأقصى على نهاية المخزن المؤقت.
لا يفحص الحزمة على الإطلاق، بل يعمل على المخازن المؤقتة الفارغة.
| المرتجعات | |
|---|---|
ByteBuffer |
|
هو
public boolean is (int cmdSet,
int cmd)| المعلمات | |
|---|---|
cmdSet |
int |
cmd |
int |
| المرتجعات | |
|---|---|
boolean |
|
isEmpty
public boolean isEmpty ()
تعرِض هذه السمة القيمة "true" إذا لم تكن حزمة JDWP هذه تحتوي على أي بيانات.
| المرتجعات | |
|---|---|
boolean |
|
isError
public boolean isError ()
تعرِض القيمة "true" إذا كانت حزمة JDWP هذه ردًا يتضمّن رمز خطأ غير صفري.
| المرتجعات | |
|---|---|
boolean |
|
isReply
public boolean isReply ()
تعرض هذه السمة القيمة "true" إذا تم تصنيف حزمة JDWP هذه على أنّها ردّ.
| المرتجعات | |
|---|---|
boolean |
|
لوغاريتم
public void log (String action)
| المعلمات | |
|---|---|
action |
String |
نقل
public void move (ByteBuffer buf)
"نقل" بيانات الحزمة من المخزن المؤقت الذي نستخدمه إلى buf في الموضع الحالي
| المعلمات | |
|---|---|
buf |
ByteBuffer |
setPayload
public void setPayload (ByteBuffer buf)
استبدِل حمولة الحزمة بمخزن مؤقت. لا يتغيّر الموضع الحالي.
| المعلمات | |
|---|---|
buf |
ByteBuffer |
toString
public String toString ()
| المرتجعات | |
|---|---|
String |
|
في الكتابة
public void write (SocketChannel chan)
اكتب حزمة البيانات إلى "chan".
تبدأ حزمة JDWP عند الإزاحة 0 وتنتهي عند mBuffer.position().
| المعلمات | |
|---|---|
chan |
SocketChannel |