ChunkHandler
public abstract class ChunkHandler
extends JdwpInterceptor
| شیء جاوا | ||
| ↳ | 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)یک ByteBuffer با فضای کافی برای نگهداری هدر بسته JDWP و یک هدر تکه، علاوه بر نیازهای تکهای که ایجاد میشود، اختصاص دهید. |
abstract void | clientDisconnected ( ClientImpl client)مشتری رفته است. |
abstract void | clientReady ( ClientImpl client)مشتری آماده است. |
static void | finishChunkPacket ( JdwpPacket packet, int type, int chunkLen)سرتیتر تکه را در ابتدای تکه بنویسید. |
static ByteBuffer | getChunkDataBuf (ByteBuffer jdwpBuf)تکهای از بافر بسته JDWP را که فقط دادههای تکهای را در خود نگه میدارد، برمیگرداند. |
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)تبدیل یک رشته ۴ کاراکتری به نوع ۳۲ بیتی |
روشهای محافظتشده | |
|---|---|
void | handleUnknownChunk ( ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)تکههایی را که توسط کنترلکنندهها شناسایی نمیشوند، مدیریت کنید. |
ثابتها
CHUNK_HEADER_LEN
public static final int CHUNK_HEADER_LEN
مقدار ثابت: ۸ (۰x۰۰۰۰۰۰۸)
DDMS_CMD
public static final int DDMS_CMD
مقدار ثابت: ۱ (۰x۰۰۰۰۰۰۱)
DDMS_CMD_SET
public static final int DDMS_CMD_SET
مقدار ثابت: ۱۹۹ (۰x۰۰۰۰۰۰c۷)
فیلدها
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)
یک ByteBuffer با فضای کافی برای نگهداری هدر بسته JDWP و یک هدر تکه، علاوه بر نیازهای تکهای که ایجاد میشود، اختصاص دهید.
"maxChunkLen" فقط اندازه محتویات تکه را نشان میدهد.
| پارامترها | |
|---|---|
maxChunkLen | int |
| بازگشتها | |
|---|---|
ByteBuffer | |
کلاینت قطع ارتباط کرد
public abstract void clientDisconnected (ClientImpl client)
کلاینت از بین رفته است. میتوان از آن برای پاکسازی هرگونه منابع مرتبط با این اتصال کلاینت استفاده کرد.
| پارامترها | |
|---|---|
client | ClientImpl |
مشتری آماده
public abstract void clientReady (ClientImpl client)
کلاینت آماده است. نخ مانیتور این متد را روی همه هندلرها فراخوانی میکند، زمانی که کلاینت مشخص شود که از DDM آگاه است (معمولاً پس از دریافت پاسخ HELO).
کنترلکننده میتواند از این فرصت برای مقداردهی اولیه فعالیت سمت کلاینت استفاده کند. از آنجا که احتمال زیادی وجود دارد که بخواهیم پیامی را به کلاینت ارسال کنیم، این متد میتواند یک IOException ایجاد کند.
| پارامترها | |
|---|---|
client | ClientImpl |
بستهی تکمیلشده
public static void finishChunkPacket (JdwpPacket packet, int type, int chunkLen)
سرتیتر تکه را در ابتدای تکه بنویسید.
بافر بایتی که توسط JdwpPacket.getPayload() برگردانده شده است را وارد کنید.
| پارامترها | |
|---|---|
packet | JdwpPacket |
type | int |
chunkLen | int |
دریافت داده های دریافت شده
public static ByteBuffer getChunkDataBuf (ByteBuffer jdwpBuf)
تکهای از بافر بسته JDWP را که فقط دادههای تکهای را در خود نگه میدارد، برمیگرداند.
| پارامترها | |
|---|---|
jdwpBuf | ByteBuffer |
| بازگشتها | |
|---|---|
ByteBuffer | |
دسته دسته
public abstract void handleChunk (ClientImpl client, int type, ByteBuffer data, boolean isReply, int msgId)
مدیریت یک تکه داده ورودی. دادهها، از نوع تکه "type"، از ابتدای "data" شروع میشوند و تا data.limit() ادامه مییابند.
اگر "isReply" تنظیم شده باشد، "msgId" شناسه درخواستی خواهد بود که به کلاینت ارسال کردهایم. در غیر این صورت، شناسهای است که توسط کلاینت برای این رویداد تولید شده است. توجه داشته باشید که میتوان بخشهایی از بستههای پاسخ را که برای آنها ثبت نشدهایم، دریافت کرد.
کنترلکننده نمیتواند محتوای «دادهها» را تغییر دهد.
| پارامترها | |
|---|---|
client | ClientImpl |
type | int |
data | ByteBuffer |
isReply | boolean |
msgId | int |
بسته دسته
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)
تبدیل یک رشته ۴ کاراکتری به نوع ۳۲ بیتی
| پارامترها | |
|---|---|
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 |