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

public abstract class BidirectionalStream.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

Вызывается, когда нет данных для чтения или записи, и поток успешно закрывается как удаленно, так и локально.

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

Вызывается, когда весь переданный в write() байтовый буфер отправлен.

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

Перезвонить

public Callback()

Общедоступные методы

Отменено

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

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

Параметры
BidirectionalStream stream

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

UrlResponseInfo info

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

onFailed

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

Вызывается, если поток не запустился по какой-либо причине после start . Коды ошибок HTTP/2 сопоставляются с кодами getCronetInternalErrorCode . После вызова эти методы BidirectionalStream.Callback вызываться не будут.

Параметры
BidirectionalStream stream

поток, который не удался

UrlResponseInfo info

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

CronetException error

информация о сбое

onReadCompleted

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

Вызывается при чтении данных в буфер, переданный в метод read() . Может быть заполнена только часть буфера. Для продолжения чтения вызовите метод read() . Его можно вызвать после onResponseTrailersReceived() , если до получения трейлеров были ожидающие чтения данные.

Параметры
BidirectionalStream stream

поток, на котором завершилось чтение

UrlResponseInfo info

ответная информация

ByteBuffer buffer

Буфер, переданный в функцию read() , теперь содержит полученные данные. Лимит буфера не изменяется. Позиция буфера устанавливается в конец полученных данных. Если позиция не обновляется, это означает, что удаленная сторона сообщила, что больше не будет отправлять данные.

boolean endOfStream

Если это так, то это последние прочитанные данные, удаленный сервер больше не будет отправлять данные, и соединение для чтения будет закрыто.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

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

Параметры
BidirectionalStream stream

Поток, в котором были получены заголовки ответа.

UrlResponseInfo info

ответная информация.

onResponseTrailersReceived

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

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

onSucceeded

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
)

Вызывается, когда весь переданный в write() ByteBuffer отправлен. Позиция буфера обновляется и становится равной пределу буфера. Предел буфера не изменяется. Чтобы продолжить запись, вызовите write() .

Параметры
BidirectionalStream stream

поток, в котором завершилась запись

UrlResponseInfo info

ответная информация

ByteBuffer buffer

Буфер, переданный в write() . Позиция буфера устанавливается на его предел. Предел буфера не изменяется.

boolean endOfStream

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