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 |