ChunkHandler

public abstract class ChunkHandler
extends JdwpInterceptor

java.lang.Object
   ↳ com.android.tradefed.device.server.jdwp.JdwpInterceptor
     ↳ com.android.tradefed.device.server.jdwp.chunkhandler.ChunkHandler


يمكنك إنشاء فئة فرعية من هذه الفئة باستخدام فئة تعالج نوعًا واحدًا أو أكثر من أنواع الأجزاء.

ملخّص

الثوابت

int CHUNK_HEADER_LEN

int DDMS_CMD

int DDMS_CMD_SET

الحقول

public static final int CHUNK_FAIL

public static final ByteOrder CHUNK_ORDER

الإنشاءات العامة

ChunkHandler()

الطُرق العامة

static ByteBuffer allocBuffer(int maxChunkLen)

خصِّص ByteBuffer بمساحة كافية لاحتواء عنوان حزمة JDWP وعنوان جزء واحد بالإضافة إلى متطلبات الجزء الذي يتم إنشاؤه.

abstract void clientDisconnected(ClientImpl client)

تم إغلاق التطبيق.

abstract void clientReady(ClientImpl client)

العميل جاهز.

static void finishChunkPacket(JdwpPacket packet, int type, int chunkLen)

اكتب عنوان الجزء في بداية الجزء.

static ByteBuffer getChunkDataBuf(ByteBuffer jdwpBuf)

تعرض هذه الطريقة شريحة من مخزن مؤقت لحزمة JDWP تحتوي على بيانات الجزء فقط.

abstract void handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)

التعامل مع جزء وارد

void handlePacket(ClientImpl client, JdwpPacket packet)
JdwpPacket intercept(JdwpAgent agent, JdwpPacket packet)
static int type(String typeName)

تحويل سلسلة من 4 أحرف إلى نوع 32 بت

الطُرق المحمية

void handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)

لم يتم التعرّف على أجزاء الاسم المعرّف من قِبل المعالِجات.

الثوابت

CHUNK_HEADER_LEN

public static final int CHUNK_HEADER_LEN

Constant Value: 8 (0x00000008)

DDMS_CMD

public static final int DDMS_CMD

القيمة الثابتة: 1 (0x00000001)

DDMS_CMD_SET

public static final int DDMS_CMD_SET

القيمة الثابتة: 199 (0x000000c7)

الحقول

CHUNK_FAIL

public static final int CHUNK_FAIL

CHUNK_ORDER

public static final ByteOrder CHUNK_ORDER

الإنشاءات العامة

ChunkHandler

public ChunkHandler ()

الطُرق العامة

allocBuffer

public static ByteBuffer allocBuffer (int maxChunkLen)

خصِّص ByteBuffer بمساحة كافية لاحتواء عنوان حزمة JDWP وعنوان جزء واحد بالإضافة إلى متطلبات الجزء الذي يتم إنشاؤه.

تشير السمة "maxChunkLen" إلى حجم محتوى الجزء فقط.

المعلمات
maxChunkLen int

المرتجعات
ByteBuffer

clientDisconnected

public abstract void clientDisconnected (ClientImpl client)

تم إغلاق التطبيق. يمكن استخدامها لتنظيف أي موارد مرتبطة باتصال العميل هذا.

المعلمات
client ClientImpl

clientReady

public abstract void clientReady (ClientImpl client)

العميل جاهز. تستدعي سلسلة التعليمات البرمجية الخاصة بالمراقبة هذه الطريقة في جميع المعالِجات عندما يتم تحديد أنّ العميل متوافق مع DDM (عادةً بعد تلقّي رد HELO).

يمكن أن يستفيد المعالج من هذه الفرصة لإعداد النشاط من جهة العميل. بما أنّه من المحتمل أن نريد إرسال رسالة إلى العميل، يمكن أن تؤدي هذه الطريقة إلى ظهور IOException.

المعلمات
client ClientImpl

finishChunkPacket

public static void finishChunkPacket (JdwpPacket packet, 
                int type, 
                int chunkLen)

اكتب عنوان الجزء في بداية الجزء.

مرِّر مخزن البايت المؤقت الذي تعرضه الدالة JdwpPacket.getPayload().

المعلمات
packet JdwpPacket

type int

chunkLen int

getChunkDataBuf

public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)

تعرض هذه الطريقة شريحة من مخزن مؤقت لحزمة JDWP تحتوي على بيانات الجزء فقط.

المعلمات
jdwpBuf ByteBuffer

المرتجعات
ByteBuffer

handleChunk

public abstract void handleChunk (ClientImpl client, 
                int type, 
                ByteBuffer data, 
                boolean isReply, 
                int msgId)

التعامل مع جزء وارد تبدأ البيانات، من نوع الجزء "type"، في بداية "data" وتستمر حتى data.limit().

في حال ضبط "isReply"، سيكون "msgId" هو معرّف الطلب الذي أرسلناه إلى العميل. بخلاف ذلك، يكون المعرّف الذي أنشأه العميل لهذا الحدث. يُرجى العِلم أنّه من المحتمل تلقّي أجزاء في حِزم الردود لم يتم تسجيلنا فيها.

لا يجوز للمعالج تعديل محتوى "البيانات".

المعلمات
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int

handlePacket

public void handlePacket (ClientImpl client, 
                JdwpPacket packet)

المعلمات
client ClientImpl

packet JdwpPacket

اعتراض

public JdwpPacket intercept (JdwpAgent agent, 
                JdwpPacket packet)

المعلمات
agent JdwpAgent

packet JdwpPacket

المرتجعات
JdwpPacket

كتابة

public static int type (String typeName)

تحويل سلسلة من 4 أحرف إلى نوع 32 بت

المعلمات
typeName String

المرتجعات
int

الطُرق المحمية

handleUnknownChunk

protected void handleUnknownChunk (ClientImpl client, 
                int type, 
                ByteBuffer data, 
                boolean isReply, 
                int msgId)

لم يتم التعرّف على أجزاء الاسم المعرّف من قِبل المعالِجات. يجب أن تستدعي طريقة handleChunk() في الفئات الفرعية هذه الطريقة إذا لم يتم التعرّف على نوع الجزء.

المعلمات
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int