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 | |
Buat subclass ini dengan class yang menangani satu atau beberapa jenis chunk.
Ringkasan
Konstanta | |
|---|---|
int |
CHUNK_HEADER_LEN
|
int |
DDMS_CMD
|
int |
DDMS_CMD_SET
|
Kolom | |
|---|---|
public
static
final
int |
CHUNK_FAIL
|
public
static
final
ByteOrder |
CHUNK_ORDER
|
Konstruktor publik | |
|---|---|
ChunkHandler()
|
|
Metode publik | |
|---|---|
static
ByteBuffer
|
allocBuffer(int maxChunkLen)
Alokasikan ByteBuffer dengan ruang yang cukup untuk menyimpan header paket JDWP dan satu header chunk selain permintaan chunk yang dibuat. |
abstract
void
|
clientDisconnected(ClientImpl client)
Klien telah keluar. |
abstract
void
|
clientReady(ClientImpl client)
Klien sudah siap. |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
Tulis header potongan di awal potongan. |
static
ByteBuffer
|
getChunkDataBuf(ByteBuffer jdwpBuf)
Menampilkan slice buffer paket JDWP yang hanya menyimpan data potongan. |
abstract
void
|
handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Menangani chunk yang masuk. |
void
|
handlePacket(ClientImpl client, JdwpPacket packet)
|
JdwpPacket
|
intercept(JdwpAgent agent, JdwpPacket packet)
|
static
int
|
type(String typeName)
Mengonversi string 4 karakter menjadi jenis 32-bit. |
Metode yang dilindungi | |
|---|---|
void
|
handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Chunk handle tidak dikenali oleh handler. |
Konstanta
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
Nilai Konstanta: 8 (0x00000008)
DDMS_CMD
public static final int DDMS_CMD
Nilai Konstanta: 1 (0x00000001)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
Nilai Konstanta: 199 (0x000000c7)
Kolom
CHUNK_FAIL
public static final int CHUNK_FAIL
CHUNK_ORDER
public static final ByteOrder CHUNK_ORDER
Konstruktor publik
ChunkHandler
public ChunkHandler ()
Metode publik
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
Alokasikan ByteBuffer dengan ruang yang cukup untuk menyimpan header paket JDWP dan satu header chunk selain permintaan chunk yang dibuat.
"maxChunkLen" hanya menunjukkan ukuran konten chunk.
| Parameter | |
|---|---|
maxChunkLen |
int |
| Hasil | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
Klien telah keluar. Dapat digunakan untuk membersihkan semua resource yang terkait dengan koneksi klien ini.
| Parameter | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
Klien sudah siap. Thread monitor memanggil metode ini pada semua handler saat klien ditentukan sebagai kompatibel dengan DDM (biasanya setelah menerima respons HELO).
Handler dapat menggunakan kesempatan ini untuk melakukan inisialisasi aktivitas sisi klien. Karena ada peluang yang cukup besar bahwa kita akan ingin mengirim pesan kepada klien, metode ini dapat memunculkan IOException.
| Parameter | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
Tulis header potongan di awal potongan.
Teruskan buffer byte yang ditampilkan oleh JdwpPacket.getPayload().
| Parameter | |
|---|---|
packet |
JdwpPacket |
type |
int |
chunkLen |
int |
getChunkDataBuf
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
Menampilkan slice buffer paket JDWP yang hanya menyimpan data potongan.
| Parameter | |
|---|---|
jdwpBuf |
ByteBuffer |
| Hasil | |
|---|---|
ByteBuffer |
|
handleChunk
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Menangani chunk yang masuk. Data, dari jenis chunk "type", dimulai di awal "data" dan berlanjut ke data.limit().
Jika "isReply" disetel, "msgId" akan menjadi ID permintaan yang kami kirim ke klien. Jika tidak, ID ini adalah ID yang dihasilkan oleh klien untuk peristiwa ini. Perhatikan bahwa kami mungkin menerima potongan dalam paket balasan yang tidak kami daftarkan.
Handler tidak boleh mengubah konten "data".
| Parameter | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |
handlePacket
public void handlePacket (ClientImpl client, JdwpPacket packet)
| Parameter | |
|---|---|
client |
ClientImpl |
packet |
JdwpPacket |
mencegat
public JdwpPacket intercept (JdwpAgent agent, JdwpPacket packet)
| Parameter | |
|---|---|
agent |
JdwpAgent |
packet |
JdwpPacket |
| Hasil | |
|---|---|
JdwpPacket |
|
type
public static int type (String typeName)
Mengonversi string 4 karakter menjadi jenis 32-bit.
| Parameter | |
|---|---|
typeName |
String |
| Hasil | |
|---|---|
int |
|
Metode yang dilindungi
handleUnknownChunk
protected void handleUnknownChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Chunk handle tidak dikenali oleh handler. Metode handleChunk() di sub-class harus memanggil metode ini jika jenis chunk tidak dikenali.
| Parameter | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |