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


इसे ऐसी क्लास के साथ सबक्लास करें जो एक या उससे ज़्यादा तरह के चंक को हैंडल करती है.

खास जानकारी

कॉन्स्टेंट

int CHUNK_HEADER_LEN

int DDMS_CMD

int DDMS_CMD_SET

फ़ील्ड्स की फ़िल्में

public static final int CHUNK_FAIL

public static final ByteOrder CHUNK_ORDER

पब्लिक कंस्ट्रक्टर

ChunkHandler()

सार्वजनिक तरीके

static ByteBuffer allocBuffer(int maxChunkLen)

JDWP पैकेट हेडर और एक चंक हेडर को सेव करने के लिए, ByteBuffer में ज़रूरत के मुताबिक जगह दें. इसके अलावा, बनाए जा रहे चंक के लिए भी जगह दें.

abstract void clientDisconnected(ClientImpl client)

क्लाइंट अब मौजूद नहीं है.

abstract void clientReady(ClientImpl client)

क्लाइंट तैयार है.

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

चंक की शुरुआत में चंक हेडर लिखें.

static ByteBuffer getChunkDataBuf(ByteBuffer jdwpBuf)

जेडीडब्ल्यूपी पैकेट बफ़र का वह स्लाइस दिखाता है जिसमें सिर्फ़ चंक डेटा होता है.

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

इनकमिंग चंक को मैनेज करता है.

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

चार वर्णों वाली स्ट्रिंग को 32-बिट टाइप में बदलें.

सुरक्षित तरीके

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

हैंडलर, हैंडल के हिस्सों की पहचान नहीं कर पाते.

कॉन्स्टेंट

CHUNK_HEADER_LEN

public static final int CHUNK_HEADER_LEN

कॉन्स्टेंट वैल्यू: 8 (0x00000008)

DDMS_CMD

public static final int DDMS_CMD

कॉन्स्टेंट वैल्यू: 1 (0x00000001)

DDMS_CMD_SET

public static final int DDMS_CMD_SET

कॉन्स्टेंट वैल्यू: 199 (0x000000c7)

फ़ील्ड्स की फ़िल्में

CHUNK_FAIL

public static final int CHUNK_FAIL

CHUNK_ORDER

public static final ByteOrder CHUNK_ORDER

पब्लिक कंस्ट्रक्टर

ChunkHandler

public ChunkHandler ()

सार्वजनिक तरीके

allocBuffer

public static ByteBuffer allocBuffer (int maxChunkLen)

JDWP पैकेट हेडर और एक चंक हेडर को सेव करने के लिए, ByteBuffer में ज़रूरत के मुताबिक जगह दें. इसके अलावा, बनाए जा रहे चंक के लिए भी जगह दें.

"maxChunkLen" से सिर्फ़ चंक के कॉन्टेंट का साइज़ पता चलता है.

पैरामीटर
maxChunkLen int

रिटर्न
ByteBuffer

clientDisconnected

public abstract void clientDisconnected (ClientImpl client)

क्लाइंट अब मौजूद नहीं है. इस कुकी का इस्तेमाल, इस क्लाइंट कनेक्शन से जुड़े किसी भी संसाधन को हटाने के लिए किया जा सकता है.

पैरामीटर
client ClientImpl

clientReady

public abstract void clientReady (ClientImpl client)

क्लाइंट तैयार है. जब क्लाइंट को DDM-aware के तौर पर तय किया जाता है, तब मॉनिटर थ्रेड इस तरीके को सभी हैंडलर पर कॉल करता है. आम तौर पर, ऐसा HELO का जवाब मिलने के बाद होता है.

हैंडलर, इस अवसर का इस्तेमाल क्लाइंट-साइड गतिविधि को शुरू करने के लिए कर सकता है. ऐसा हो सकता है कि हमें क्लाइंट को मैसेज भेजना पड़े. इसलिए, इस तरीके से IOException थ्रो किया जा सकता है.

पैरामीटर
client ClientImpl

finishChunkPacket

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

चंक की शुरुआत में चंक हेडर लिखें.

JdwpPacket.getPayload() से मिले बाइट बफ़र को पास करें.

पैरामीटर
packet JdwpPacket

type int

chunkLen int

getChunkDataBuf

public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)

जेडीडब्ल्यूपी पैकेट बफ़र का वह स्लाइस दिखाता है जिसमें सिर्फ़ चंक डेटा होता है.

पैरामीटर
jdwpBuf ByteBuffer

रिटर्न
ByteBuffer

handleChunk

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

इनकमिंग चंक को मैनेज करता है. "टाइप" टाइप का डेटा, "डेटा" की शुरुआत से शुरू होता है और data.limit() तक जारी रहता है.

अगर "isReply" सेट है, तो "msgId" उस अनुरोध का आईडी होगा जो हमने क्लाइंट को भेजा था. इसके अलावा, यह क्लाइंट की ओर से इस इवेंट के लिए जनरेट किया गया आईडी होता है. ध्यान दें कि ऐसा हो सकता है कि हमें उन जवाब पैकेट में चंक मिलें जिनके लिए हमने रजिस्टर नहीं किया है.

हैंडलर, "data" के कॉन्टेंट में बदलाव नहीं कर सकता.

पैरामीटर
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int

handlePacket

public void handlePacket (ClientImpl client, 
                JdwpPacket packet)

पैरामीटर
client ClientImpl

packet JdwpPacket

इंटरसेप्ट

public JdwpPacket intercept (JdwpAgent agent, 
                JdwpPacket packet)

पैरामीटर
agent JdwpAgent

packet JdwpPacket

रिटर्न
JdwpPacket

टाइप

public static int type (String typeName)

चार वर्णों वाली स्ट्रिंग को 32-बिट टाइप में बदलें.

पैरामीटर
typeName String

रिटर्न
int

सुरक्षित तरीके

handleUnknownChunk

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

हैंडलर, हैंडल के हिस्सों की पहचान नहीं कर पाते. अगर चंक टाइप की पहचान नहीं हो पाती है, तो उप-क्लास में मौजूद handleChunk() तरीके को इसे कॉल करना चाहिए.

पैरामीटर
client ClientImpl

type int

data ByteBuffer

isReply boolean

msgId int