দ্বিমুখী স্ট্রিম.কলব্যাক

abstract class BidirectionalStream.Callback


BidirectionalStream থেকে কলব্যাক গ্রহণ করতে ব্যবহৃত কলব্যাক ক্লাস।

সারসংক্ষেপ

সরকারি নির্মাণকারী

জনসাধারণের কার্যাবলী

Unit

cancel এর মাধ্যমে স্ট্রিমটি বাতিল করা হলে এটি কার্যকর হয়।

abstract Unit

start পর যেকোনো কারণে স্ট্রিমটি ব্যর্থ হলে এটি কার্যকর হয়।

abstract Unit
onReadCompleted (
stream: BidirectionalStream !,
info: UrlResponseInfo !,
buffer: ByteBuffer !,
endOfStream: Boolean
)

read() ফাংশনে প্রদত্ত বাফারে ডেটা পড়া হলে এটি কার্যকর হয়।

abstract Unit

প্রাথমিক প্রতিক্রিয়া হেডারগুলি প্রাপ্ত হলে এটি সক্রিয় হয়।

Unit

স্ট্রিম বন্ধ করার আগে ট্রেলার পাওয়া গেলে এটি সক্রিয় হয়।

abstract Unit

স্ট্রিমটি পড়া এবং লেখার জন্য প্রস্তুত হলে এটি চালু হয়।

abstract Unit

যখন পড়ার বা লেখার মতো কোনো ডেটা থাকে না এবং স্ট্রিমটি দূরবর্তীভাবে ও স্থানীয়ভাবে সফলভাবে বন্ধ করা হয়, তখন এটি কার্যকর হয়।

abstract Unit
onWriteCompleted (
stream: BidirectionalStream !,
info: UrlResponseInfo !,
buffer: ByteBuffer !,
endOfStream: Boolean
)

যখন write() ফাংশনে পাঠানো সম্পূর্ণ ByteBuffer-টি পাঠানো হয়, তখন এটি কার্যকর হয়।

সরকারি নির্মাণকারী

কলব্যাক

Callback()

জনসাধারণের কার্যাবলী

বাতিল করা হয়েছে

fun onCanceled(stream: BidirectionalStream!, info: UrlResponseInfo!): Unit

cancel মাধ্যমে স্ট্রিমটি বাতিল করা হলে এটি কল করা হয়। একবার কল করা হলে, আর কোনো BidirectionalStream.Callback মেথড কল করা হবে না। ডিফল্ট ইমপ্লিমেন্টেশন কোনো পদক্ষেপ নেয় না।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমটি বাতিল করা হয়েছিল

info: UrlResponseInfo !

প্রতিক্রিয়ার তথ্য। কোনো প্রতিক্রিয়া না পাওয়া গেলে এটি null হতে পারে।

ব্যর্থ হলে

abstract fun onFailed(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    error: CronetException!
): Unit

start পর যেকোনো কারণে স্ট্রিম ব্যর্থ হলে এটি কল করা হয়। HTTP/2 এরর কোডগুলোকে getCronetInternalErrorCode কোডগুলোর সাথে ম্যাপ করা হয়। একবার কল করা হলে, এরপর আর কোনো BidirectionalStream.Callback মেথড কল করা হবে না।

প্যারামিটার
stream: BidirectionalStream !

যে স্রোতটি ব্যর্থ হয়েছে

info: UrlResponseInfo !

প্রতিক্রিয়ার তথ্য। কোনো প্রতিক্রিয়া না পাওয়া গেলে এটি null হতে পারে।

error: CronetException !

ব্যর্থতা সম্পর্কে তথ্য

onReadCompleted

abstract fun onReadCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
): Unit

read() ফাংশনে দেওয়া বাফারে ডেটা পড়া হলে এটি কল করা হয়। বাফারের শুধুমাত্র একটি অংশই পূরণ করা যেতে পারে। পড়া চালিয়ে যেতে, read() আবার কল করুন। ট্রেলার পাওয়ার আগে যদি পড়ার জন্য কোনো ডেটা বাকি থাকে, তবে এটি onResponseTrailersReceived() পরেও কল করা হতে পারে।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমে রিডটি সম্পন্ন হয়েছিল

info: UrlResponseInfo !

প্রতিক্রিয়া তথ্য

buffer: ByteBuffer !

read() ফাংশনে পাঠানো বাফারটিতে এখন প্রাপ্ত ডেটা রয়েছে। বাফারের সীমা পরিবর্তিত হয় না। বাফারের অবস্থান প্রাপ্ত ডেটার শেষে সেট করা হয়। যদি অবস্থান আপডেট না করা হয়, তার মানে হলো রিমোট প্রান্ত সংকেত দিয়েছে যে এটি আর কোনো ডেটা পাঠাবে না।

endOfStream: Boolean

যদি সত্য হয়, তবে এটিই সর্বশেষ পঠিত ডেটা, রিমোট আর কোনো ডেটা পাঠাবে না এবং রিড সাইডটি বন্ধ হয়ে যাবে।

onResponseHeadersReceived

abstract fun onResponseHeadersReceived(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!
): Unit

প্রাথমিক প্রতিক্রিয়া হেডারগুলি প্রাপ্ত হলে এটি চালু হয়। হেডারগুলি info. getAllHeaders() থেকে পাওয়া যায়। ব্যবহারকারী পড়া শুরু করতে read() কল করতে পারেন। ব্যবহারকারী লেখা শুরু করতে বা স্ট্রিমটি বন্ধ করতে write() কল করতে পারেন।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমে রেসপন্স হেডারগুলো গ্রহণ করা হয়েছিল।

info: UrlResponseInfo !

প্রতিক্রিয়া তথ্য।

onResponseTrailersReceived

fun onResponseTrailersReceived(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    trailers: UrlResponseInfo.HeaderBlock!
): Unit

স্ট্রিম বন্ধ করার আগে ট্রেলার পাওয়া গেলে এটি চালু হয়। এটি শুধুমাত্র তখনই চালু হয় যখন সার্ভার ট্রেলার পাঠায়, যা সার্ভার নাও পাঠাতে পারে। লোকাল বাফারে পঠিত ডেটা অবশিষ্ট থাকা অবস্থাতেও এটি চালু হতে পারে। ডিফল্ট ইমপ্লিমেন্টেশন কোনো পদক্ষেপ নেয় না।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমে প্রতিক্রিয়া ট্রেলারগুলি পাওয়া গিয়েছিল

info: UrlResponseInfo !

প্রতিক্রিয়া তথ্য

trailers: UrlResponseInfo.HeaderBlock !

ট্রেলারগুলি পেয়েছে

অনস্ট্রিমরেডি

abstract fun onStreamReady(stream: BidirectionalStream!): Unit

স্ট্রিমটি পড়া এবং লেখার জন্য প্রস্তুত হলে এটি কল করা হয়। ডেটা পড়া শুরু করতে কনজিউমার read() কল করতে পারে। ডেটা লেখা শুরু করতে কনজিউমার write() কল করতে পারে।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমটি প্রস্তুত।

সফল হয়েছে

abstract fun onSucceeded(stream: BidirectionalStream!, info: UrlResponseInfo!): Unit

যখন পড়ার বা লেখার মতো কোনো ডেটা থাকে না এবং স্ট্রিমটি দূরবর্তী ও স্থানীয়ভাবে সফলভাবে বন্ধ হয়ে যায়, তখন এটি কার্যকর হয়। একবার কার্যকর হলে, এরপর আর কোনো BidirectionalStream.Callback মেথড কার্যকর হবে না।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমটি সফলভাবে বন্ধ করা হয়েছে

info: UrlResponseInfo !

প্রতিক্রিয়া তথ্য

onWriteCompleted

abstract fun onWriteCompleted(
    stream: BidirectionalStream!,
    info: UrlResponseInfo!,
    buffer: ByteBuffer!,
    endOfStream: Boolean
): Unit

যখন write() ফাংশনে পাঠানো সম্পূর্ণ ByteBuffer-টি পাঠানো হয়, তখন এটি কল করা হয়। বাফারের অবস্থান আপডেট করে বাফারের লিমিটের সমান করা হয়। বাফারের লিমিট পরিবর্তন করা হয় না। লেখা চালিয়ে যেতে, write() আবার কল করুন।

প্যারামিটার
stream: BidirectionalStream !

যে স্ট্রিমে লেখাটি সম্পন্ন হয়েছিল

info: UrlResponseInfo !

প্রতিক্রিয়া তথ্য

buffer: ByteBuffer !

যে বাফারটি write() ফাংশনে পাঠানো হয়েছিল। বাফারটির অবস্থান তার লিমিটে সেট করা হয়। বাফারটির লিমিট পরিবর্তন করা হয় না।

endOfStream: Boolean

সংশ্লিষ্ট write() ফাংশনে পাস করা endOfStream ফ্ল্যাগ। যদি এটি true হয়, তাহলে রাইট সাইডটি বন্ধ হয়ে যায়।