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 | |
Créez une sous-classe avec une classe qui gère un ou plusieurs types de blocs.
Résumé
Constantes | |
|---|---|
int |
CHUNK_HEADER_LEN
|
int |
DDMS_CMD
|
int |
DDMS_CMD_SET
|
Champs | |
|---|---|
public
static
final
int |
CHUNK_FAIL
|
public
static
final
ByteOrder |
CHUNK_ORDER
|
Constructeurs publics | |
|---|---|
ChunkHandler()
|
|
Méthodes publiques | |
|---|---|
static
ByteBuffer
|
allocBuffer(int maxChunkLen)
Allouez un ByteBuffer avec suffisamment d'espace pour contenir l'en-tête de paquet JDWP et un en-tête de bloc en plus des exigences du bloc en cours de création. |
abstract
void
|
clientDisconnected(ClientImpl client)
Le client a disparu. |
abstract
void
|
clientReady(ClientImpl client)
Le client est prêt. |
static
void
|
finishChunkPacket(JdwpPacket packet, int type, int chunkLen)
Écrivez l'en-tête du bloc au début du bloc. |
static
ByteBuffer
|
getChunkDataBuf(ByteBuffer jdwpBuf)
Renvoie la tranche du tampon de paquets JDWP qui contient uniquement les données du bloc. |
abstract
void
|
handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Gérez un bloc entrant. |
void
|
handlePacket(ClientImpl client, JdwpPacket packet)
|
JdwpPacket
|
intercept(JdwpAgent agent, JdwpPacket packet)
|
static
int
|
type(String typeName)
Convertissez une chaîne de quatre caractères en type 32 bits. |
Méthodes protégées | |
|---|---|
void
|
handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Blocs d'identifiants non reconnus par les gestionnaires. |
Constantes
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
Valeur constante : 8 (0x00000008)
DDMS_CMD
public static final int DDMS_CMD
Valeur constante : 1 (0x00000001)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
Valeur constante : 199 (0x000000c7)
Champs
CHUNK_FAIL
public static final int CHUNK_FAIL
CHUNK_ORDER
public static final ByteOrder CHUNK_ORDER
Constructeurs publics
ChunkHandler
public ChunkHandler ()
Méthodes publiques
allocBuffer
public static ByteBuffer allocBuffer (int maxChunkLen)
Allouez un ByteBuffer avec suffisamment d'espace pour contenir l'en-tête de paquet JDWP et un en-tête de bloc en plus des exigences du bloc en cours de création.
"maxChunkLen" indique uniquement la taille du contenu du bloc.
| Paramètres | |
|---|---|
maxChunkLen |
int |
| Renvoie | |
|---|---|
ByteBuffer |
|
clientDisconnected
public abstract void clientDisconnected (ClientImpl client)
Le client a disparu. Peut être utilisé pour nettoyer toutes les ressources associées à cette connexion client.
| Paramètres | |
|---|---|
client |
ClientImpl |
clientReady
public abstract void clientReady (ClientImpl client)
Le client est prêt. Le thread du moniteur appelle cette méthode sur tous les gestionnaires lorsque le client est considéré comme compatible avec DDM (généralement après avoir reçu une réponse HELO).
Le gestionnaire peut profiter de cette occasion pour initialiser l'activité côté client. Étant donné qu'il y a de fortes chances que nous voulions envoyer un message au client, cette méthode peut générer une IOException.
| Paramètres | |
|---|---|
client |
ClientImpl |
finishChunkPacket
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
Écrivez l'en-tête du bloc au début du bloc.
Transmettez le tampon d'octets renvoyé par JdwpPacket.getPayload().
| Paramètres | |
|---|---|
packet |
JdwpPacket |
type |
int |
chunkLen |
int |
getChunkDataBuf
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
Renvoie la tranche du tampon de paquets JDWP qui contient uniquement les données du bloc.
| Paramètres | |
|---|---|
jdwpBuf |
ByteBuffer |
| Renvoie | |
|---|---|
ByteBuffer |
|
handleChunk
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Gérez un bloc entrant. Les données, de type "type", commencent au début de "data" et se poursuivent jusqu'à data.limit().
Si "isReply" est défini, "msgId" correspond à l'ID de la requête que nous avons envoyée au client. Sinon, il s'agit de l'ID généré par le client pour cet événement. Notez qu'il est possible de recevoir des blocs dans des paquets de réponse pour lesquels nous ne sommes pas enregistrés.
Le gestionnaire ne peut pas modifier le contenu de "data".
| Paramètres | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |
handlePacket
public void handlePacket (ClientImpl client, JdwpPacket packet)
| Paramètres | |
|---|---|
client |
ClientImpl |
packet |
JdwpPacket |
intercepter
public JdwpPacket intercept (JdwpAgent agent, JdwpPacket packet)
| Paramètres | |
|---|---|
agent |
JdwpAgent |
packet |
JdwpPacket |
| Renvoie | |
|---|---|
JdwpPacket |
|
type
public static int type (String typeName)
Convertissez une chaîne de quatre caractères en type 32 bits.
| Paramètres | |
|---|---|
typeName |
String |
| Renvoie | |
|---|---|
int |
|
Méthodes protégées
handleUnknownChunk
protected void handleUnknownChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
Blocs d'identifiants non reconnus par les gestionnaires. La méthode handleChunk() des sous-classes doit appeler cette méthode si le type de bloc n'est pas reconnu.
| Paramètres | |
|---|---|
client |
ClientImpl |
type |
int |
data |
ByteBuffer |
isReply |
boolean |
msgId |
int |