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 | |
Utwórz podklasę z klasą, która obsługuje co najmniej 1 typ fragmentu.
Podsumowanie
Stałe | |
|---|---|
int |
CHUNK_HEADER_LEN
|
int |
DDMS_CMD
|
int |
DDMS_CMD_SET
|
Fieldsem | |
|---|---|
public
static
final
int |
CHUNK_FAIL
|
public
static
final
ByteOrder |
CHUNK_ORDER
|
Publiczne konstruktory | |
|---|---|
ChunkHandler()
|
|
Metody publiczne | |
|---|---|
static
ByteBuffer
|
allocBuffer(int maxChunkLen)
Przydziel ByteBuffer z wystarczającą ilością miejsca na nagłówek pakietu JDWP i nagłówek fragmentu, a także na potrzeby tworzonego fragmentu. |
abstract
void
|
clientDisconnected(ClientImpl client)
Klient odszedł. |
abstract
void
|
clientReady(ClientImpl client)
Klient jest gotowy. |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
Napisz nagłówek fragmentu na początku fragmentu. |
static
ByteBuffer
|
getChunkDataBuf(ByteBuffer jdwpBuf)
Zwraca wycinek bufora pakietu JDWP, który zawiera tylko dane fragmentu. |
abstract
void
|
handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Obsługa przychodzącego fragmentu. |
void
|
handlePacket(ClientImpl client, JdwpPacket packet)
|
JdwpPacket
|
intercept(JdwpAgent agent, JdwpPacket packet)
|
static
int
|
type(String typeName)
Konwertuje 4-znakowy ciąg znaków na typ 32-bitowy. |
Metody chronione | |
|---|---|
void
|
handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Fragmenty uchwytu nie są rozpoznawane przez moduły obsługi. |
Stałe
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
Wartość stała: 8 (0x00000008)
DDMS_CMD
public static final int DDMS_CMD
Wartość stała: 1 (0x00000001)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
Wartość stała: 199 (0x000000c7)
Fieldsem
CHUNK_FAIL
public static final int CHUNK_FAIL
CHUNK_ORDER
public static final ByteOrder CHUNK_ORDER
Publiczne konstruktory
ChunkHandler
public ChunkHandler ()
Metody publiczne
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
Przydziel ByteBuffer z wystarczającą ilością miejsca na nagłówek pakietu JDWP i nagłówek jednego fragmentu, a także na potrzeby tworzonego fragmentu.
„maxChunkLen” wskazuje tylko rozmiar zawartości fragmentu.
| Parametry | |
|---|---|
maxChunkLen |
int |
| Zwroty | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
Klient odszedł. Może służyć do czyszczenia zasobów powiązanych z tym połączeniem klienta.
| Parametry | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
Klient jest gotowy. Wątek monitora wywołuje tę metodę we wszystkich modułach obsługi, gdy klient jest uznawany za obsługującego DDM (zwykle po otrzymaniu odpowiedzi HELO).
Obsługa może wykorzystać tę okazję do zainicjowania aktywności po stronie klienta. Istnieje duże prawdopodobieństwo, że będziemy chcieli wysłać wiadomość do klienta, dlatego ta metoda może zgłosić wyjątek IOException.
| Parametry | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
Napisz nagłówek fragmentu na początku fragmentu.
Przekaż bufor bajtów zwrócony przez JdwpPacket.getPayload().
| Parametry | |
|---|---|
packet |
JdwpPacket |
type |
int |
chunkLen |
int |
getChunkDataBuf
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
Zwraca wycinek bufora pakietu JDWP, który zawiera tylko dane fragmentu.
| Parametry | |
|---|---|
jdwpBuf |
ByteBuffer |
| Zwroty | |
|---|---|
ByteBuffer |
|
handleChunk
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Obsługa przychodzącego fragmentu. Dane typu fragmentu „type” zaczynają się na początku „data” i trwają do data.limit().
Jeśli parametr „isReply” jest ustawiony, „msgId” będzie identyfikatorem żądania wysłanego przez nas do klienta. W przeciwnym razie jest to identyfikator wygenerowany przez klienta na potrzeby tego zdarzenia. Pamiętaj, że w pakietach odpowiedzi możesz otrzymać fragmenty, w przypadku których nie jesteśmy zarejestrowani.
Procedura obsługi nie może modyfikować zawartości parametru „data”.
| Parametry | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |
handlePacket
public void handlePacket (ClientImpl client, JdwpPacket packet)
| Parametry | |
|---|---|
client |
ClientImpl |
packet |
JdwpPacket |
przechwytywać,
public JdwpPacket intercept (JdwpAgent agent, JdwpPacket packet)
| Parametry | |
|---|---|
agent |
JdwpAgent |
packet |
JdwpPacket |
| Zwroty | |
|---|---|
JdwpPacket |
|
typ
public static int type (String typeName)
Konwertuje 4-znakowy ciąg znaków na typ 32-bitowy.
| Parametry | |
|---|---|
typeName |
String |
| Zwroty | |
|---|---|
int |
|
Metody chronione
handleUnknownChunk
protected void handleUnknownChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Fragmenty uchwytu nie są rozpoznawane przez moduły obsługi. Metoda handleChunk() w klasach podrzędnych powinna wywoływać tę metodę, jeśli typ fragmentu nie jest rozpoznawany.
| Parametry | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |