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

Constructors ציבוריים

ChunkHandler()

‫methods ציבוריים

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

ערך קבוע: 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

Constructors ציבוריים

ChunkHandler

public ChunkHandler ()

‫methods ציבוריים

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).

ה-handler יכול לנצל את ההזדמנות הזו כדי לאתחל פעילות בצד הלקוח. יכול להיות שנרצה לשלוח הודעה ללקוח, ולכן השיטה הזו יכולה להחזיר 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.limit().

אם הערך של isReply מוגדר, msgId יהיה המזהה של הבקשה ששלחנו ללקוח. אחרת, זה המזהה שנוצר על ידי הלקוח לאירוע הזה. חשוב לדעת שאפשר לקבל נתחים בחבילות תשובה שלא נרשמנו לקבלתן.

ה-handler לא יכול לשנות את התוכן של 'data'.

פרמטרים
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