BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


Class callback yang digunakan untuk menerima callback dari BidirectionalStream.

Ringkasan

Konstruktor publik

Metode publik

void

Dipanggil jika streaming dibatalkan melalui cancel.

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

Dipanggil jika streaming gagal karena alasan apa pun setelah start.

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

Dipanggil saat data dibaca ke dalam buffer yang diteruskan ke read().

abstract void

Dipanggil saat header respons awal diterima.

void

Dipanggil saat trailer diterima sebelum menutup streaming.

abstract void

Dipanggil saat streaming siap untuk dibaca dan ditulis.

abstract void

Dipanggil saat tidak ada data yang akan dibaca atau ditulis dan streaming ditutup dengan berhasil dari jarak jauh dan lokal.

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

Dipanggil saat seluruh ByteBuffer yang diteruskan ke write() dikirim.

Konstruktor publik

Callback

public Callback()

Metode publik

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

Dipanggil jika streaming dibatalkan melalui cancel. Setelah dipanggil, tidak ada metode BidirectionalStream.Callback lebih lanjut yang akan dipanggil. Implementasi default tidak melakukan tindakan apa pun.

Parameter
BidirectionalStream stream

streaming yang dibatalkan

UrlResponseInfo info

informasi respons. Mungkin null jika tidak ada respons yang diterima.

onFailed

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

Dipanggil jika streaming gagal karena alasan apa pun setelah start. Kode error HTTP/2 dipetakan ke getCronetInternalErrorCode kode. Setelah dipanggil, tidak ada metode BidirectionalStream.Callback lebih lanjut yang akan dipanggil.

Parameter
BidirectionalStream stream

streaming yang gagal

UrlResponseInfo info

informasi respons. Mungkin null jika tidak ada respons yang diterima.

CronetException error

informasi tentang kegagalan

onReadCompleted

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

Dipanggil saat data dibaca ke dalam buffer yang diteruskan ke read(). Hanya sebagian buffer yang mungkin diisi. Untuk melanjutkan membaca, panggil read(). Metode ini dapat dipanggil setelah onResponseTrailersReceived(), jika ada data baca yang tertunda sebelum trailer diterima.

Parameter
BidirectionalStream stream

streaming tempat pembacaan selesai

UrlResponseInfo info

informasi respons

ByteBuffer buffer

buffer yang diteruskan ke read(), yang kini berisi data yang diterima. Batas buffer tidak diubah. Posisi buffer ditetapkan ke akhir data yang diterima. Jika posisi tidak diperbarui, artinya sisi jarak jauh telah memberi sinyal bahwa tidak akan mengirim data lagi.

boolean endOfStream

jika benar (true), ini adalah data baca terakhir, jarak jauh tidak akan mengirim data lagi, dan sisi baca ditutup.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

Dipanggil saat header respons awal diterima. Header tersedia dari info.getAllHeaders(). Konsumen dapat memanggil read() untuk mulai membaca. Konsumen dapat memanggil write() untuk mulai menulis atau menutup streaming.

Parameter
BidirectionalStream stream

streaming tempat header respons diterima.

UrlResponseInfo info

informasi respons.

onResponseTrailersReceived

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

Dipanggil saat trailer diterima sebelum menutup streaming. Hanya dipanggil saat server mengirim trailer, yang mungkin tidak. Dapat dipanggil saat masih ada data baca di buffer lokal. Implementasi default tidak melakukan tindakan apa pun.

Parameter
BidirectionalStream stream

streaming tempat trailer respons diterima

UrlResponseInfo info

informasi respons

UrlResponseInfo.HeaderBlock trailers

trailer yang diterima

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

Dipanggil saat streaming siap untuk dibaca dan ditulis. Konsumen dapat memanggil read() untuk mulai membaca data. Konsumen dapat memanggil write() untuk mulai menulis data.

Parameter
BidirectionalStream stream

streaming yang siap.

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

Dipanggil saat tidak ada data yang akan dibaca atau ditulis dan streaming ditutup dengan berhasil dari jarak jauh dan lokal. Setelah dipanggil, tidak ada metode BidirectionalStream.Callback lebih lanjut yang akan dipanggil.

Parameter
BidirectionalStream stream

streaming yang ditutup dengan berhasil

UrlResponseInfo info

informasi respons

onWriteCompleted

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

Dipanggil saat seluruh ByteBuffer yang diteruskan ke write() dikirim. Posisi buffer diperbarui agar sama dengan batas buffer. Batas buffer tidak diubah. Untuk melanjutkan penulisan, panggil write().

Parameter
BidirectionalStream stream

streaming tempat penulisan selesai

UrlResponseInfo info

informasi respons

ByteBuffer buffer

buffer yang diteruskan ke write(). Posisi buffer ditetapkan ke batas buffer. Batas buffer tidak diubah.

boolean endOfStream

flag endOfStream yang diteruskan ke write() yang sesuai. Jika benar (true), sisi penulisan ditutup.