BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


Classe di callback utilizzata per ricevere callback da un BidirectionalStream.

Riepilogo

Costruttori pubblici

Metodi pubblici

void

Richiamato se lo stream è stato annullato tramite cancel.

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

Richiamato se lo stream non è riuscito per qualsiasi motivo dopo start.

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

Richiamato quando i dati vengono letti nel buffer passato a read().

abstract void

Richiamato quando vengono ricevute le intestazioni della risposta iniziale.

void

Richiamato quando vengono ricevuti i trailer prima della chiusura dello stream.

abstract void

Richiamato quando lo stream è pronto per la lettura e la scrittura.

abstract void

Richiamato quando non ci sono dati da leggere o scrivere e lo stream viene chiuso correttamente in remoto e localmente.

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

Richiamato quando viene inviato l'intero ByteBuffer passato a write().

Costruttori pubblici

Callback

public Callback()

Metodi pubblici

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

Richiamato se lo stream è stato annullato tramite cancel. Una volta richiamato, non verranno richiamati altri metodi BidirectionalStream.Callback. L'implementazione predefinita non esegue alcuna azione.

Parametri
BidirectionalStream stream

lo stream che è stato annullato

UrlResponseInfo info

le informazioni sulla risposta. Può essere null se non è stata ricevuta alcuna risposta.

onFailed

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

Richiamato se lo stream non è riuscito per qualsiasi motivo dopo start. I codici di errore HTTP/2 vengono mappati ai codici getCronetInternalErrorCode. Una volta richiamato, non verranno richiamati altri metodi BidirectionalStream.Callback.

Parametri
BidirectionalStream stream

lo stream che non è riuscito

UrlResponseInfo info

le informazioni sulla risposta. Può essere null se non è stata ricevuta alcuna risposta.

CronetException error

informazioni sull'errore

onReadCompleted

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

Richiamato quando i dati vengono letti nel buffer passato a read(). Solo una parte del buffer potrebbe essere popolata. Per continuare a leggere, chiama read(). Potrebbe essere richiamato dopo onResponseTrailersReceived(), se erano presenti dati di lettura in attesa prima della ricezione dei trailer.

Parametri
BidirectionalStream stream

lo stream su cui è stata completata la lettura

UrlResponseInfo info

le informazioni sulla risposta

ByteBuffer buffer

il buffer passato a read(), ora contenente i dati ricevuti. Il limite del buffer non viene modificato. La posizione del buffer è impostata alla fine dei dati ricevuti. Se la posizione non viene aggiornata, significa che il lato remoto ha segnalato che non invierà altri dati.

boolean endOfStream

se è true, si tratta degli ultimi dati letti, il lato remoto non invierà altri dati e il lato di lettura è chiuso.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

Richiamato quando vengono ricevute le intestazioni della risposta iniziale. Le intestazioni sono disponibili da info.getAllHeaders(). Il consumer può chiamare read() per iniziare la lettura. Il consumer può chiamare write() per iniziare la scrittura o chiudere lo stream.

Parametri
BidirectionalStream stream

lo stream su cui sono state ricevute le intestazioni della risposta.

UrlResponseInfo info

le informazioni sulla risposta.

onResponseTrailersReceived

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

Richiamato quando vengono ricevuti i trailer prima della chiusura dello stream. Viene richiamato solo quando il server invia i trailer, cosa che potrebbe non fare. Può essere richiamato mentre sono presenti dati di lettura rimanenti nel buffer locale. L'implementazione predefinita non esegue alcuna azione.

Parametri
BidirectionalStream stream

lo stream su cui sono stati ricevuti i trailer della risposta

UrlResponseInfo info

le informazioni sulla risposta

UrlResponseInfo.HeaderBlock trailers

i trailer ricevuti

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

Richiamato quando lo stream è pronto per la lettura e la scrittura. Il consumer può chiamare read() per iniziare a leggere i dati. Il consumer può chiamare write() per iniziare a scrivere i dati.

Parametri
BidirectionalStream stream

lo stream che è pronto.

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

Richiamato quando non ci sono dati da leggere o scrivere e lo stream viene chiuso correttamente in remoto e localmente. Una volta richiamato, non verranno richiamati altri metodi BidirectionalStream.Callback.

Parametri
BidirectionalStream stream

lo stream che è stato chiuso correttamente

UrlResponseInfo info

le informazioni sulla risposta

onWriteCompleted

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

Richiamato quando viene inviato l'intero ByteBuffer passato a write(). La posizione del buffer viene aggiornata in modo che sia uguale al limite del buffer. Il limite del buffer non viene modificato. Per continuare a scrivere, chiama write().

Parametri
BidirectionalStream stream

lo stream su cui è stata completata la scrittura

UrlResponseInfo info

le informazioni sulla risposta

ByteBuffer buffer

il buffer passato a write(). La posizione del buffer è impostata sul limite del buffer. Il limite del buffer non viene modificato.

boolean endOfStream

il flag endOfStream passato al write() corrispondente. Se è true, il lato di scrittura è chiuso.