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 | |
สร้างคลาสย่อยนี้ด้วยคลาสที่จัดการประเภทก้อนอย่างน้อย 1 ประเภท
สรุป
ค่าคงที่ | |
|---|---|
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 และส่วนหัวของ Chunk 1 รายการ นอกเหนือจากข้อกำหนดของ Chunk ที่กำลังสร้าง |
abstract
void
|
clientDisconnected(ClientImpl client)
ไคลเอ็นต์หายไป |
abstract
void
|
clientReady(ClientImpl client)
ไคลเอ็นต์พร้อมแล้ว |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
เขียนส่วนหัวของ Chunk ที่จุดเริ่มต้นของ Chunk |
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
เครื่องมือสร้างสาธารณะ
ChunkHandler
public ChunkHandler ()
เมธอดสาธารณะ
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
จัดสรร ByteBuffer ที่มีพื้นที่เพียงพอสำหรับจัดเก็บส่วนหัวของแพ็กเก็ต JDWP และส่วนหัวของ Chunk 1 รายการ นอกเหนือจากข้อกำหนดของ Chunk ที่กำลังสร้าง
"maxChunkLen" ระบุขนาดของเนื้อหาใน Chunk เท่านั้น
| พารามิเตอร์ | |
|---|---|
maxChunkLen |
int |
| คิกรีเทิร์น | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
ไคลเอ็นต์หายไป ใช้เพื่อล้างข้อมูลทรัพยากรที่เชื่อมโยงกับการเชื่อมต่อไคลเอ็นต์นี้ได้
| พารามิเตอร์ | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
ไคลเอ็นต์พร้อมแล้ว เธรดตรวจสอบจะเรียกใช้เมธอดนี้ในแฮนเดิลทั้งหมดเมื่อระบบพิจารณาว่าไคลเอ็นต์เป็น DDM-aware (โดยปกติหลังจากได้รับคำตอบ HELO)
แฮนเดิลเลอร์สามารถใช้โอกาสนี้เพื่อเริ่มต้นกิจกรรมฝั่งไคลเอ็นต์ เนื่องจากมี โอกาสที่เราอาจต้องการส่งข้อความไปยังไคลเอ็นต์ เมธอดนี้จึงอาจทำให้เกิด IOException
| พารามิเตอร์ | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
เขียนส่วนหัวของ Chunk ที่จุดเริ่มต้นของ Chunk
ส่งบัฟเฟอร์ไบต์ที่ 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" จะเป็นรหัสของคำขอที่เราส่งไปยังไคลเอ็นต์ มิฉะนั้นจะเป็นรหัสที่ไคลเอ็นต์สร้างขึ้นสำหรับเหตุการณ์นี้ โปรดทราบว่าอาจ ได้รับก้อนข้อมูลในแพ็กเก็ตการตอบกลับที่เราไม่ได้ลงทะเบียนไว้
แฮนเดิลเลอร์อาจแก้ไขเนื้อหาของ "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 |