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


Phân lớp này bằng một lớp xử lý một hoặc nhiều loại khối.

Tóm tắt

Hằng số

int CHUNK_HEADER_LEN

int DDMS_CMD

int DDMS_CMD_SET

Trường

public static final int CHUNK_FAIL

public static final ByteOrder CHUNK_ORDER

Hàm khởi tạo công khai

ChunkHandler()

Phương thức công khai

static ByteBuffer allocBuffer(int maxChunkLen)

Phân bổ một ByteBuffer có đủ dung lượng để chứa tiêu đề gói JDWP và một tiêu đề khối ngoài các yêu cầu của khối đang được tạo.

abstract void clientDisconnected(ClientImpl client)

Ứng dụng đã ngừng hoạt động.

abstract void clientReady(ClientImpl client)

Ứng dụng đã sẵn sàng.

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

Viết tiêu đề khối ở đầu khối.

static ByteBuffer getChunkDataBuf(ByteBuffer jdwpBuf)

Trả về lát của vùng đệm gói JDWP chỉ chứa dữ liệu khối.

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

Xử lý một khối dữ liệu đến.

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

Chuyển đổi chuỗi gồm 4 ký tự thành kiểu 32 bit.

Phương thức được bảo vệ

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

Các trình xử lý không nhận dạng được các khối xử lý.

Hằng số

CHUNK_HEADER_LEN

public static final int CHUNK_HEADER_LEN

Giá trị hằng số: 8 (0x00000008)

DDMS_CMD

public static final int DDMS_CMD

Giá trị hằng số: 1 (0x00000001)

DDMS_CMD_SET

public static final int DDMS_CMD_SET

Giá trị hằng số: 199 (0x000000c7)

Trường

CHUNK_FAIL

public static final int CHUNK_FAIL

CHUNK_ORDER

public static final ByteOrder CHUNK_ORDER

Hàm khởi tạo công khai

ChunkHandler

public ChunkHandler ()

Phương thức công khai

allocBuffer

public static ByteBuffer allocBuffer (int maxChunkLen)

Phân bổ một ByteBuffer có đủ dung lượng để chứa tiêu đề gói JDWP và một tiêu đề khối ngoài các yêu cầu của khối đang được tạo.

"maxChunkLen" chỉ cho biết kích thước của nội dung khối.

Tham số
maxChunkLen int

Giá trị trả về
ByteBuffer

clientDisconnected

public abstract void clientDisconnected (ClientImpl client)

Ứng dụng đã ngừng hoạt động. Có thể dùng để dọn dẹp mọi tài nguyên được liên kết với kết nối máy khách này.

Tham số
client ClientImpl

clientReady

public abstract void clientReady (ClientImpl client)

Ứng dụng đã sẵn sàng. Luồng giám sát gọi phương thức này trên tất cả các trình xử lý khi ứng dụng được xác định là có hỗ trợ DDM (thường là sau khi nhận được phản hồi HELO).

Trình xử lý có thể tận dụng cơ hội này để khởi chạy hoạt động phía máy khách. Vì có khả năng chúng ta sẽ muốn gửi thông báo đến máy khách, nên phương thức này có thể gửi một IOException.

Tham số
client ClientImpl

finishChunkPacket

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

Viết tiêu đề khối ở đầu khối.

Truyền vào vùng đệm byte do JdwpPacket.getPayload() trả về.

Tham số
packet JdwpPacket

type int

chunkLen int

getChunkDataBuf

public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)

Trả về lát của vùng đệm gói JDWP chỉ chứa dữ liệu khối.

Tham số
jdwpBuf ByteBuffer

Giá trị trả về
ByteBuffer

handleChunk

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

Xử lý một khối dữ liệu đến. Dữ liệu, thuộc loại khối "type", bắt đầu từ đầu "data" và tiếp tục đến data.limit().

Nếu bạn đặt "isReply", thì "msgId" sẽ là mã nhận dạng của yêu cầu mà chúng tôi đã gửi cho ứng dụng. Nếu không, đó là mã nhận dạng do ứng dụng tạo cho sự kiện này. Xin lưu ý rằng có thể bạn sẽ nhận được các đoạn trong gói phản hồi mà bạn chưa đăng ký.

Trình xử lý không được sửa đổi nội dung của "data".

Tham số
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int

handlePacket

public void handlePacket (ClientImpl client, 
                JdwpPacket packet)

Tham số
client ClientImpl

packet JdwpPacket

chặn

public JdwpPacket intercept (JdwpAgent agent, 
                JdwpPacket packet)

Tham số
agent JdwpAgent

packet JdwpPacket

Giá trị trả về
JdwpPacket

loại

public static int type (String typeName)

Chuyển đổi chuỗi gồm 4 ký tự thành kiểu 32 bit.

Tham số
typeName String

Giá trị trả về
int

Phương thức được bảo vệ

handleUnknownChunk

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

Các trình xử lý không nhận dạng được các khối xử lý. Phương thức handleChunk() trong các lớp con sẽ gọi phương thức này nếu không nhận dạng được loại khối.

Tham số
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int