BidirectionalStream

public abstract class BidirectionalStream


Classe per l'invio e la ricezione bidirezionali di dati tramite connessioni HTTP/2 o QUIC. Creata da Builder.

Nota: esistono limitazioni di ordinamento sui metodi di BidirectionalStream; consulta i singoli metodi per una descrizione delle limitazioni.

Riepilogo

Tipi nidificati

public abstract class BidirectionalStream.Builder

Builder per BidirectionalStream.

public abstract class BidirectionalStream.Callback

Classe di callback utilizzata per ricevere callback da un BidirectionalStream.

Costruttori pubblici

Metodi pubblici

abstract void

Annulla lo stream.

abstract void

Esegue il flush delle scritture in attesa.

abstract boolean

Restituisce true se lo stream è stato avviato correttamente ed è stato completato (operazione riuscita, annullata o non riuscita).

abstract void
read(ByteBuffer buffer)

Legge i dati dallo stream nel buffer fornito.

abstract void

Avvia lo stream. Tutti i callback vanno all'argomento callback passato al costruttore di BidirectionalStream.Builder.

abstract void
write(ByteBuffer buffer, boolean endOfStream)

Aggiunge i dati da scrivere nello stream.

Costruttori pubblici

BidirectionalStream

public BidirectionalStream()

Metodi pubblici

cancel

public abstract void cancel()

Annulla lo stream. Può essere chiamato in qualsiasi momento dopo start. onCanceled() verrà richiamato al termine dell'annullamento e non verranno richiamati altri metodi di callback. Se lo stream è stato completato o non è stato avviato, la chiamata a cancel() non ha alcun effetto e onCanceled() non verrà richiamato. Se l'Executor passato durante la costruzione di BidirectionalStream esegue le attività su un singolo thread e cancel() viene chiamato su quel thread, non verranno richiamati metodi di listener (oltre a onCanceled()) dopo la chiamata a cancel(). In caso contrario, dopo il completamento di cancel() può essere richiamato al massimo un metodo di callback.

flush

public abstract void flush()

Esegue il flush delle scritture in attesa. Questo metodo non deve essere richiamato prima di onStreamReady(). Per le write()s ritardate in precedenza, verrà richiamato un onWriteCompleted() corrispondente quando il buffer viene inviato.

isDone

public abstract boolean isDone()

Restituisce true se lo stream è stato avviato correttamente ed è stato completato (operazione riuscita, annullata o non riuscita).

Restituisce
boolean

true se lo stream è stato avviato correttamente ed è stato completato (operazione riuscita, annullata o non riuscita), altrimenti restituisce false per indicare che lo stream non è ancora stato avviato o è in corso.

read

public abstract void read(ByteBuffer buffer)

Legge i dati dallo stream nel buffer fornito. Può essere chiamato al massimo una volta in risposta a ogni chiamata dei metodi onStreamReady()/ onResponseHeadersReceived() e onReadCompleted() di Callback. Ogni chiamata comporterà la chiamata del metodo onReadCompleted() di Callback se i dati vengono letti o del metodo onFailed() se si verifica un errore. Viene avviato un tentativo di leggere i dati in buffer a partire da buffer.position(). Vengono letti al massimo buffer.remaining() byte. buffer.position() viene aggiornato alla chiamata di onReadCompleted() per indicare la quantità di dati letti.

Parametri
ByteBuffer buffer

Il ByteBuffer in cui leggere i dati. Deve essere un ByteBuffer diretto. L'incorporatore non deve leggere o modificare la posizione, il limite o i dati del buffer tra la posizione e il limite fino a quando non vengono richiamati onReadCompleted(), onCanceled() o onFailed().

start

public abstract void start()

Avvia lo stream. Tutti i callback vanno all'argomento callback passato al costruttore di BidirectionalStream.Builder. Deve essere chiamato una sola volta.

write

public abstract void write(ByteBuffer buffer, boolean endOfStream)

Aggiunge i dati da scrivere nello stream. I dati verranno inviati solo dopo la chiamata a flush(). Ogni chiamata comporterà la chiamata del metodo onWriteCompleted() di Callback se i dati vengono inviati o del metodo onFailed() se si verifica un errore.

Viene avviato un tentativo di scrivere i dati da buffer a partire da buffer.position(). Verranno scritti buffer.remaining() byte. onWriteCompleted() verrà richiamato solo quando l'intero ByteBuffer viene scritto.

Parametri
ByteBuffer buffer

Il ByteBuffer da cui scrivere i dati. Deve essere un ByteBuffer diretto. L'incorporatore non deve leggere o modificare la posizione, il limite o i dati del buffer tra la posizione e il limite fino a quando non vengono richiamati onWriteCompleted(), onCanceled() o onFailed(). Può essere vuoto quando endOfStream è true.

boolean endOfStream

Se true, buffer è l'ultimo buffer da scrivere e, una volta scritto, lo stream viene chiuso dal lato client, con conseguente stream semi-chiuso o completamente chiuso se il lato remoto è già chiuso.