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

public abstract class BidirectionalStream.Callback


کلاس Callback برای دریافت Callbackها از یک BidirectionalStream استفاده می‌شود.

خلاصه

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

روش‌های عمومی

void

اگر پخش جریان از طریق cancel لغو شده باشد، فراخوانی می‌شود.

abstract void

اگر پخش جریان به هر دلیلی پس از start با شکست مواجه شود، فراخوانی می‌شود.

abstract void
onReadCompleted (
BidirectionalStream stream,
UrlResponseInfo info,
ByteBuffer buffer,
boolean endOfStream
)

هنگام خواندن داده‌ها از بافر ارسالی به read() فراخوانی می‌شود.

abstract void

هنگام دریافت هدرهای پاسخ اولیه فراخوانی می‌شود.

void

هنگام دریافت تریلرها قبل از بستن استریم، فراخوانی می‌شود.

abstract void

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

abstract void

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

abstract void
onWriteCompleted (
BidirectionalStream stream,
UrlResponseInfo info,
ByteBuffer buffer,
boolean endOfStream
)

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

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

تماس برگشتی

public Callback()

روش‌های عمومی

لغو شد

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

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

پارامترها
BidirectionalStream stream

جریانی که لغو شد

UrlResponseInfo info

اطلاعات پاسخ. در صورت عدم دریافت پاسخ، ممکن است null باشد.

در ناموفق

public abstract void onFailed(
    BidirectionalStream stream,
    UrlResponseInfo info,
    CronetException error
)

اگر جریان به هر دلیلی پس از start با شکست مواجه شود، فراخوانی می‌شود. کدهای خطای HTTP/2 به کدهای getCronetInternalErrorCode نگاشت می‌شوند. پس از فراخوانی، هیچ متد BidirectionalStream.Callback دیگری فراخوانی نخواهد شد.

پارامترها
BidirectionalStream stream

جریانی که شکست خورده است

UrlResponseInfo info

اطلاعات پاسخ. در صورت عدم دریافت پاسخ، ممکن است null باشد.

CronetException error

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

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

public abstract void onReadCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

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

پارامترها
BidirectionalStream stream

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

UrlResponseInfo info

اطلاعات پاسخ

ByteBuffer buffer

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

boolean endOfStream

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

onResponseHeadersدریافت شده

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

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

پارامترها
BidirectionalStream stream

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

UrlResponseInfo info

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

onResponseTrailersدریافت شده

public void onResponseTrailersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info,
    UrlResponseInfo.HeaderBlock trailers
)

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

پارامترها
BidirectionalStream stream

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

UrlResponseInfo info

اطلاعات پاسخ

UrlResponseInfo.HeaderBlock trailers

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

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

زمانی که استریم آماده خواندن و نوشتن باشد، فراخوانی می‌شود. مصرف‌کننده می‌تواند تابع read() را برای شروع خواندن داده‌ها فراخوانی کند. مصرف‌کننده می‌تواند تابع write() را برای شروع نوشتن داده‌ها فراخوانی کند.

پارامترها
BidirectionalStream stream

جریانی که آماده است.

موفق شد

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

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

پارامترها
BidirectionalStream stream

جریانی که با موفقیت بسته شد

UrlResponseInfo info

اطلاعات پاسخ

onWriteCompleted

public abstract void onWriteCompleted(
    BidirectionalStream stream,
    UrlResponseInfo info,
    ByteBuffer buffer,
    boolean endOfStream
)

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

پارامترها
BidirectionalStream stream

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

UrlResponseInfo info

اطلاعات پاسخ

ByteBuffer buffer

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

boolean endOfStream

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