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 |