JdwpPacket সম্পর্কে
public final class JdwpPacket
extends Object
| java.lang.অবজেক্ট | |
| ↳ | com.android.tradefed.device.server.jdwp.chunkhandler.JdwpPacket সম্পর্কে |
একটি JDWP প্যাকেট, কোথাও একটি ByteBuffer এর শুরুতে বসে আছে।
এটি আমাদের প্যাকেট ডিকোডিংয়ের ফলাফল সহ ডেটাতে একটি "পয়েন্টার" মোড়ানোর অনুমতি দেয়।
এখানে কোনও অপারেশন সিঙ্ক্রোনাইজ করা হয়নি। যদি একাধিক থ্রেড একই বাইটবাফার অ্যাক্সেস করে, তাহলে বহিরাগত সিঙ্কের প্রয়োজন হবে।
একটি খালি প্যাকেট তৈরি করতে কনস্ট্রাক্টর ব্যবহার করুন, অথবা বিদ্যমান ডেটার চারপাশে একটি JdwpPacket মোড়ানোর জন্য "findPacket()" ব্যবহার করুন।
সারাংশ
ধ্রুবক | |
|---|---|
int | JDWP_HEADER_LEN |
পাবলিক কনস্ট্রাক্টর | |
|---|---|
JdwpPacket (ByteBuffer buf)"buf" তে একটি নতুন, খালি প্যাকেট তৈরি করুন। | |
পাবলিক পদ্ধতি | |
|---|---|
void | consume ()JDWP প্যাকেটটি ব্যবহার করুন। |
void | copy (ByteBuffer into)প্যাকেটটি একটি নতুন বাফারে কপি করার জন্য সহায়ক ফাংশন। |
static JdwpPacket | findPacket (ByteBuffer buf) |
static JdwpPacket | findPacketHeader (ByteBuffer buf) |
void | finishPacket (int cmdSet, int cmd, int payloadLength)newPacket() দিয়ে তৈরি একটি প্যাকেট সম্পূর্ণ করুন। |
int | getId ()প্যাকেটের আইডি ফেরত দিন। |
int | getLength ()একটি প্যাকেটের দৈর্ঘ্য ফেরত দিন। |
static int | getPacketLength (ByteBuffer buf)যখন "buf" তে JdwpPackets থাকে তখন প্রথম ৪ বাইট হল প্যাকেটের দৈর্ঘ্য। |
ByteBuffer | getPayload ()JDWP হেডারের পাশে অবস্থিত বাইট বাফারের একটি অংশ চাঙ্ক হেডারের শুরুতে ফিরিয়ে দিন। |
boolean | is (int cmdSet, int cmd) |
boolean | isEmpty ()যদি এই JDWP প্যাকেটে কোন ডেটা না থাকে তবে "true" প্রদান করে। |
boolean | isError ()যদি এই JDWP প্যাকেটটি শূন্যবিহীন ত্রুটি কোড সহ একটি উত্তর হয় তবে "true" প্রদান করে। |
boolean | isReply ()যদি এই JDWP প্যাকেটটিকে উত্তর হিসেবে ট্যাগ করা হয়, তাহলে "true" প্রদান করে। |
void | log (String action) |
void | move (ByteBuffer buf)আমরা যে বাফারে বসে আছি সেখান থেকে প্যাকেট ডেটা "সরান" এবং বর্তমান অবস্থানে buf-এ রাখুন। |
void | setPayload (ByteBuffer buf)প্যাকেজের পেলোডকে একটি বাফার দিয়ে প্রতিস্থাপন করুন। |
String | toString () |
void | write (SocketChannel chan)আমাদের প্যাকেটটি "চ্যান" তে লিখুন। |
ধ্রুবক
জেডিডব্লিউপি_হেডার_লেন
public static final int JDWP_HEADER_LEN
ধ্রুবক মান: ১১ (০x০০০০০০০বি)
পাবলিক কনস্ট্রাক্টর
JdwpPacket সম্পর্কে
public JdwpPacket (ByteBuffer buf)
"buf" তে একটি নতুন, খালি প্যাকেট তৈরি করুন।
| পরামিতি | |
|---|---|
buf | ByteBuffer |
পাবলিক পদ্ধতি
গ্রাস করা
public void consume ()
JDWP প্যাকেটটি ব্যবহার করুন।
প্রবেশ এবং প্রস্থানের সময়, "অবস্থান" বাফারে ডেটার শেষে থাকে।
কপি
public void copy (ByteBuffer into)
প্যাকেটটি একটি নতুন বাফারে কপি করার জন্য সহায়ক ফাংশন।
| পরামিতি | |
|---|---|
into | ByteBuffer |
findPacket সম্পর্কে
public static JdwpPacket findPacket (ByteBuffer buf)
| পরামিতি | |
|---|---|
buf | ByteBuffer |
| রিটার্নস | |
|---|---|
JdwpPacket | |
ফাইন্ডপ্যাকেটহেডার
public static JdwpPacket findPacketHeader (ByteBuffer buf)
| পরামিতি | |
|---|---|
buf | ByteBuffer |
| রিটার্নস | |
|---|---|
JdwpPacket | |
ফিনিশপ্যাকেট
public void finishPacket (int cmdSet,
int cmd,
int payloadLength)newPacket() দিয়ে তৈরি একটি প্যাকেট সম্পূর্ণ করুন।
এটি সর্বদা একটি কমান্ড প্যাকেট তৈরি করে, যার পরবর্তী সিরিয়াল নম্বরটি ক্রমানুসারে থাকে।
"পেলোডলেংথ" কে যুক্তি হিসেবে নিতে হবে কারণ আমরা getPayload() দ্বারা ফেরত আসা "স্লাইস" এর অবস্থান দেখতে পাচ্ছি না। আমরা এটিকে চাঙ্ক হেডার থেকে বের করতে পারি, কিন্তু একটি JDWP প্যাকেটে একাধিক চাঙ্ক থাকা বৈধ।
প্রস্থান করার সময়, "অবস্থান" ডেটার শেষে নির্দেশ করে।
| পরামিতি | |
|---|---|
cmdSet | int |
cmd | int |
payloadLength | int |
আইডি পান
public int getId ()
প্যাকেটের আইডি ফেরত দিন। একটি উত্তর প্যাকেটের জন্য, এটি আমাদের মূল অনুরোধের সাথে উত্তর মেলাতে সাহায্য করে।
| রিটার্নস | |
|---|---|
int | |
দৈর্ঘ্য পান
public int getLength ()
একটি প্যাকেটের দৈর্ঘ্য ফেরত দিন। এর মধ্যে হেডার অন্তর্ভুক্ত, তাই একটি খালি প্যাকেট ১১ বাইট লম্বা।
| রিটার্নস | |
|---|---|
int | |
getPacketLength সম্পর্কে
public static int getPacketLength (ByteBuffer buf)
যখন "buf" তে JdwpPackets থাকে তখন প্রথম ৪ বাইট হল প্যাকেটের দৈর্ঘ্য। এই সহায়ক ফাংশনটি প্রথম ৪ বাইট পড়ে এবং যাচাই করে যে দৈর্ঘ্যটি কমপক্ষে JDWP হেডারের আকারের।
| পরামিতি | |
|---|---|
buf | ByteBuffer : একটি বাফার যা ধরে নেওয়া হয় একটি jdwp প্যাকেট ধারণ করে। |
| রিটার্নস | |
|---|---|
int | -1 যদি দৈর্ঘ্য অবৈধ হয়, অন্যথায় প্যাকেটের দৈর্ঘ্য। |
getPayload সম্পর্কে
public ByteBuffer getPayload ()
JDWP হেডারের পাশ দিয়ে অবস্থিত বাইট বাফারের একটি স্লাইস চাঙ্ক হেডারের শুরুতে ফিরিয়ে আনুন। যদি আকার জানা থাকে তবে বাফারের সীমা পেলোডের আকারে সেট করা হবে; যদি এটি নির্মাণাধীন প্যাকেট হয় তবে সীমা বাফারের শেষে সেট করা হবে।
প্যাকেটটি মোটেও পরীক্ষা করে না -- খালি বাফারে কাজ করে।
| রিটার্নস | |
|---|---|
ByteBuffer | |
হল
public boolean is (int cmdSet,
int cmd)| পরামিতি | |
|---|---|
cmdSet | int |
cmd | int |
| রিটার্নস | |
|---|---|
boolean | |
খালি আছে
public boolean isEmpty ()
যদি এই JDWP প্যাকেটে কোন ডেটা না থাকে তবে "true" প্রদান করে।
| রিটার্নস | |
|---|---|
boolean | |
ত্রুটি আছে
public boolean isError ()
যদি এই JDWP প্যাকেটটি শূন্যবিহীন ত্রুটি কোড সহ একটি উত্তর হয় তবে "true" প্রদান করে।
| রিটার্নস | |
|---|---|
boolean | |
উত্তর
public boolean isReply ()
যদি এই JDWP প্যাকেটটিকে উত্তর হিসেবে ট্যাগ করা হয়, তাহলে "true" প্রদান করে।
| রিটার্নস | |
|---|---|
boolean | |
লগ
public void log (String action)
| পরামিতি | |
|---|---|
action | String |
সরানো
public void move (ByteBuffer buf)
আমরা যে বাফারে বসে আছি সেখান থেকে প্যাকেট ডেটা "সরান" এবং বর্তমান অবস্থানে buf-এ রাখুন।
| পরামিতি | |
|---|---|
buf | ByteBuffer |
সেটপেলোড
public void setPayload (ByteBuffer buf)
প্যাকেজের পেলোডকে একটি বাফার দিয়ে প্রতিস্থাপন করুন। বর্তমান অবস্থান অপরিবর্তিত রয়েছে।
| পরামিতি | |
|---|---|
buf | ByteBuffer |
টুস্ট্রিং
public String toString ()
| রিটার্নস | |
|---|---|
String | |
লিখুন
public void write (SocketChannel chan)
আমাদের প্যাকেটটি "চ্যান" তে লিখুন।
JDWP প্যাকেটটি অফসেট 0 থেকে শুরু হয় এবং mBuffer.position() এ শেষ হয়।
| পরামিতি | |
|---|---|
chan | SocketChannel |