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