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 | |
Crie uma subclasse com uma classe que processe um ou mais tipos de fragmentos.
Resumo
Constantes | |
|---|---|
int |
CHUNK_HEADER_LEN
|
int |
DDMS_CMD
|
int |
DDMS_CMD_SET
|
Campos | |
|---|---|
public
static
final
int |
CHUNK_FAIL
|
public
static
final
ByteOrder |
CHUNK_ORDER
|
Construtores públicos | |
|---|---|
ChunkHandler()
|
|
Métodos públicos | |
|---|---|
static
ByteBuffer
|
allocBuffer(int maxChunkLen)
Alocar um ByteBuffer com espaço suficiente para armazenar o cabeçalho do pacote JDWP e um cabeçalho de bloco além das demandas do bloco que está sendo criado. |
abstract
void
|
clientDisconnected(ClientImpl client)
O cliente saiu. |
abstract
void
|
clientReady(ClientImpl client)
O cliente está pronto. |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
Escreva o cabeçalho do bloco no início dele. |
static
ByteBuffer
|
getChunkDataBuf(ByteBuffer jdwpBuf)
Retorna a parte do buffer de pacote JDWP que contém apenas os dados do bloco. |
abstract
void
|
handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Processa um bloco de entrada. |
void
|
handlePacket(ClientImpl client, JdwpPacket packet)
|
JdwpPacket
|
intercept(JdwpAgent agent, JdwpPacket packet)
|
static
int
|
type(String typeName)
Converter uma string de quatro caracteres em um tipo de 32 bits. |
Métodos protegidos | |
|---|---|
void
|
handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Processa partes não reconhecidas pelos manipuladores. |
Constantes
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
Valor da constante: 8 (0x00000008)
DDMS_CMD
public static final int DDMS_CMD
Valor da constante: 1 (0x00000001)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
Valor da constante: 199 (0x000000c7)
Campos
CHUNK_FAIL
public static final int CHUNK_FAIL
CHUNK_ORDER
public static final ByteOrder CHUNK_ORDER
Construtores públicos
ChunkHandler
public ChunkHandler ()
Métodos públicos
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
Alocar um ByteBuffer com espaço suficiente para armazenar o cabeçalho do pacote JDWP e um cabeçalho de bloco além das demandas do bloco que está sendo criado.
"maxChunkLen" indica apenas o tamanho do conteúdo do bloco.
| Parâmetros | |
|---|---|
maxChunkLen |
int |
| Retorna | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
O cliente saiu. Pode ser usado para limpar todos os recursos associados a essa conexão do cliente.
| Parâmetros | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
O cliente está pronto. A linha de execução do monitor chama esse método em todos os manipuladores quando o cliente é determinado como compatível com DDM (geralmente após receber uma resposta HELO).
O manipulador pode aproveitar essa oportunidade para inicializar a atividade do lado do cliente. Como há uma chance razoável de querermos enviar uma mensagem ao cliente, esse método pode gerar uma IOException.
| Parâmetros | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
Escreva o cabeçalho do bloco no início dele.
Transmita o buffer de bytes retornado por JdwpPacket.getPayload().
| Parâmetros | |
|---|---|
packet |
JdwpPacket |
type |
int |
chunkLen |
int |
getChunkDataBuf
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
Retorna a parte do buffer de pacote JDWP que contém apenas os dados do bloco.
| Parâmetros | |
|---|---|
jdwpBuf |
ByteBuffer |
| Retorna | |
|---|---|
ByteBuffer |
|
handleChunk
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Processa um bloco de entrada. Os dados, do tipo de bloco "type", começam no início de "data" e continuam até data.limit().
Se "isReply" estiver definido, "msgId" será o ID da solicitação enviada ao cliente. Caso contrário, é o ID gerado pelo cliente para esse evento. É possível receber partes em pacotes de resposta para os quais não estamos registrados.
O manipulador não pode modificar o conteúdo de "data".
| Parâmetros | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |
handlePacket
public void handlePacket (ClientImpl client, JdwpPacket packet)
| Parâmetros | |
|---|---|
client |
ClientImpl |
packet |
JdwpPacket |
interceptar
public JdwpPacket intercept (JdwpAgent agent, JdwpPacket packet)
| Parâmetros | |
|---|---|
agent |
JdwpAgent |
packet |
JdwpPacket |
| Retorna | |
|---|---|
JdwpPacket |
|
type
public static int type (String typeName)
Converter uma string de quatro caracteres em um tipo de 32 bits.
| Parâmetros | |
|---|---|
typeName |
String |
| Retorna | |
|---|---|
int |
|
Métodos protegidos
handleUnknownChunk
protected void handleUnknownChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Processa partes não reconhecidas pelos manipuladores. O método handleChunk() em subclasses precisa chamar isso se o tipo de bloco não for reconhecido.
| Parâmetros | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |