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


Bunu, bir veya daha fazla parça türünü işleyen bir sınıfla alt sınıfa ayırın.

Özet

Sabitler

int CHUNK_HEADER_LEN

int DDMS_CMD

int DDMS_CMD_SET

Fields'ın oynadığı filmler

public static final int CHUNK_FAIL

public static final ByteOrder CHUNK_ORDER

Herkese açık oluşturucular

ChunkHandler()

Herkese açık yöntemler

static ByteBuffer allocBuffer(int maxChunkLen)

Oluşturulan parçanın gereksinimlerine ek olarak JDWP paketi üstbilgisini ve bir parça üstbilgisini tutacak kadar alan içeren bir ByteBuffer ayırın.

abstract void clientDisconnected(ClientImpl client)

İstemci ayrıldı.

abstract void clientReady(ClientImpl client)

İstemci hazır.

static void finishChunkPacket(JdwpPacket packet, int type, int chunkLen)

Parça başlığını parçanın başında yazın.

static ByteBuffer getChunkDataBuf(ByteBuffer jdwpBuf)

Yalnızca parça verilerini içeren JDWP paketi arabelleğinin dilimini döndürür.

abstract void handleChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)

Gelen bir parçayı işleyin.

void handlePacket(ClientImpl client, JdwpPacket packet)
JdwpPacket intercept(JdwpAgent agent, JdwpPacket packet)
static int type(String typeName)

4 karakterlik bir dizeyi 32 bit türüne dönüştürür.

Korunan yöntemler

void handleUnknownChunk(ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)

İşleyiciler, işleme birimlerini tanımaz.

Sabitler

CHUNK_HEADER_LEN

public static final int CHUNK_HEADER_LEN

Sabit Değer: 8 (0x00000008)

DDMS_CMD

public static final int DDMS_CMD

Sabit Değer: 1 (0x00000001)

DDMS_CMD_SET

public static final int DDMS_CMD_SET

Sabit Değer: 199 (0x000000c7)

Fields'ın oynadığı filmler

CHUNK_FAIL

public static final int CHUNK_FAIL

CHUNK_ORDER

public static final ByteOrder CHUNK_ORDER

Herkese açık oluşturucular

ChunkHandler

public ChunkHandler ()

Herkese açık yöntemler

allocBuffer

public static ByteBuffer allocBuffer (int maxChunkLen)

Oluşturulan parçanın gereksinimlerine ek olarak JDWP paketi üstbilgisini ve bir parça üstbilgisini tutacak kadar alan içeren bir ByteBuffer ayırın.

"maxChunkLen" yalnızca parça içeriklerinin boyutunu gösterir.

Parametreler
maxChunkLen int

İlerlemeler
ByteBuffer

clientDisconnected

public abstract void clientDisconnected (ClientImpl client)

İstemci ayrıldı. Bu istemci bağlantısıyla ilişkili tüm kaynakları temizlemek için kullanılabilir.

Parametreler
client ClientImpl

clientReady

public abstract void clientReady (ClientImpl client)

İstemci hazır. İstemcinin DDM'ye duyarlı olduğu belirlendiğinde (genellikle bir HELO yanıtı alındıktan sonra) izleme iş parçacığı bu yöntemi tüm işleyicilerde çağırır.

İşleyici, bu fırsatı istemci tarafı etkinliğini başlatmak için kullanabilir. İstemciye mesaj göndermek isteyeceğimiz için bu yöntem IOException oluşturabilir.

Parametreler
client ClientImpl

finishChunkPacket

public static void finishChunkPacket (JdwpPacket packet, 
                int type, 
                int chunkLen)

Parça başlığını parçanın başında yazın.

JdwpPacket.getPayload() tarafından döndürülen bayt arabelleğini iletin.

Parametreler
packet JdwpPacket

type int

chunkLen int

getChunkDataBuf

public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)

Yalnızca parça verilerini içeren JDWP paketi arabelleğinin dilimini döndürür.

Parametreler
jdwpBuf ByteBuffer

İlerlemeler
ByteBuffer

handleChunk

public abstract void handleChunk (ClientImpl client, 
                int type, 
                ByteBuffer data, 
                boolean isReply, 
                int msgId)

Gelen bir parçayı işleyin. "type" türündeki veri parçası, "data"nın başlangıcında başlar ve data.limit()'e kadar devam eder.

"isReply" ayarlanırsa "msgId", istemciye gönderdiğimiz isteğin kimliği olur. Aksi takdirde, bu etkinlik için istemci tarafından oluşturulan kimliktir. Kayıtlı olmadığımız yanıt paketlerinde parçalar almanın mümkün olduğunu unutmayın.

İşleyici, "data" içeriğini değiştiremez.

Parametreler
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int

handlePacket

public void handlePacket (ClientImpl client, 
                JdwpPacket packet)

Parametreler
client ClientImpl

packet JdwpPacket

kesim noktası

public JdwpPacket intercept (JdwpAgent agent, 
                JdwpPacket packet)

Parametreler
agent JdwpAgent

packet JdwpPacket

İlerlemeler
JdwpPacket

tür

public static int type (String typeName)

4 karakterlik bir dizeyi 32 bit türüne dönüştürür.

Parametreler
typeName String

İlerlemeler
int

Korunan yöntemler

handleUnknownChunk

protected void handleUnknownChunk (ClientImpl client, 
                int type, 
                ByteBuffer data, 
                boolean isReply, 
                int msgId)

İşleyiciler, işleme birimlerini tanımaz. Alt sınıflardaki handleChunk() yöntemi, parça türü tanınmıyorsa bunu çağırmalıdır.

Parametreler
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int