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