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 |