جریان دوطرفه.فراخوانی

abstract class BidirectionalStream.Callback


کلاس Callback برای دریافت 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

زمانی فراخوانی می‌شود که هیچ داده‌ای برای خواندن یا نوشتن وجود ندارد و جریان (stream) با موفقیت به صورت ریموت و محلی بسته می‌شود.

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

زمانی فراخوانی می‌شود که کل ByteBuffer ارسال شده به write() ارسال شود.

سازندگان عمومی

تماس برگشتی

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 !

اطلاعات مربوط به شکست

روی خوانده شده کامل شد

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

هنگام خواندن داده‌ها در بافر ارسال شده به read() فراخوانی می‌شود. فقط بخشی از بافر می‌تواند پر شود. برای ادامه خواندن، read() را فراخوانی کنید. اگر قبل از دریافت تریلرها، داده‌های خواندنی در انتظار وجود داشته باشد، می‌توان آن را پس از onResponseTrailersReceived() فراخوانی کرد.

پارامترها
stream: BidirectionalStream !

جریانی که خواندن در آن به پایان رسید

info: UrlResponseInfo !

اطلاعات پاسخ

buffer: ByteBuffer !

بافری که به read() ارسال شده بود، اکنون حاوی داده‌های دریافتی است. محدودیت بافر تغییر نمی‌کند. موقعیت بافر در انتهای داده‌های دریافتی تنظیم می‌شود. اگر موقعیت به‌روزرسانی نشود، به این معنی است که طرف راه دور اعلام کرده است که دیگر داده‌ای ارسال نخواهد کرد.

endOfStream: Boolean

اگر درست باشد، این آخرین داده خوانده شده است، ریموت داده بیشتری ارسال نمی‌کند و سمت خواندن بسته است.

onResponseHeadersدریافت شده

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

هنگام دریافت هدرهای پاسخ اولیه فراخوانی می‌شود. هدرها از info. getAllHeaders() در دسترس هستند. مصرف‌کننده می‌تواند read() را برای شروع خواندن فراخوانی کند. مصرف‌کننده می‌تواند write() را برای شروع نوشتن یا بستن جریان فراخوانی کند.

پارامترها
stream: BidirectionalStream !

جریانی که هدرهای پاسخ در آن دریافت شده‌اند.

info: UrlResponseInfo !

اطلاعات پاسخ.

onResponseTrailersدریافت شده

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

هنگام دریافت تریلرها قبل از بستن جریان، فراخوانی می‌شود. فقط زمانی فراخوانی می‌شود که سرور تریلرها را ارسال کند، که ممکن است این اتفاق نیفتد. ممکن است تا زمانی که داده‌های خوانده شده در بافر محلی باقی مانده است، فراخوانی شود. پیاده‌سازی پیش‌فرض هیچ اقدامی انجام نمی‌دهد.

پارامترها
stream: BidirectionalStream !

جریانی که تریلرهای پاسخ در آن دریافت شده است

info: UrlResponseInfo !

اطلاعات پاسخ

trailers: UrlResponseInfo.HeaderBlock !

تریلرهای دریافتی

onStreamReady

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

زمانی که کل ByteBuffer ارسال شده به write() ارسال شود، فراخوانی می‌شود. موقعیت بافر به‌روزرسانی می‌شود تا با محدودیت بافر برابر شود. محدودیت بافر تغییر نمی‌کند. برای ادامه نوشتن، write() را فراخوانی کنید.

پارامترها
stream: BidirectionalStream !

جریانی که نوشتن روی آن تکمیل شده است

info: UrlResponseInfo !

اطلاعات پاسخ

buffer: ByteBuffer !

بافری که به write() ارسال شده است. موقعیت بافر روی محدودیت بافر تنظیم می‌شود. محدودیت بافر تغییر نمی‌کند.

endOfStream: Boolean

پرچم endOfStream که به تابع write() مربوطه ارسال شده است. اگر مقدار آن درست باشد، سمت نوشتن بسته می‌شود.