Двунаправленный поток.Обратный вызов

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() байтовый буфер отправлен.

Государственные строители

Перезвонить

Callback()

Общественные функции

Отменено

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

Вызывается, если поток был отменен с помощью cancel . После вызова эти методы BidirectionalStream.Callback больше вызываться не будут. Реализация по умолчанию не предпринимает никаких действий.

Параметры
stream: BidirectionalStream !

трансляция, которая была отменена

info: UrlResponseInfo !

Информация об ответе. Может быть null если ответ не был получен.

onFailed

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 !

полученные трейлеры

onStreamReady

abstract fun onStreamReady(stream: BidirectionalStream!): Unit

Вызывается, когда поток готов к чтению и записи. Потребитель может вызвать метод read() для начала чтения данных. Потребитель может вызвать метод write() для начала записи данных.

Параметры
stream: BidirectionalStream !

Поток, который готов.

onSucceeded

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

Флаг endOfStream, переданный в соответствующий метод write() . Если значение равно true, то поток записи закрывается.