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