BidirectionalStream.Callback

public abstract class BidirectionalStream.Callback


Classe de rappel utilisée pour recevoir des rappels d'un BidirectionalStream.

Résumé

Constructeurs publics

Méthodes publiques

void

Appelée si le flux a été annulé via cancel.

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

Appelée si le flux a échoué pour une raison quelconque après start.

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

Appelée lorsque des données sont lues dans le tampon transmis à read().

abstract void

Appelée lorsque les en-têtes de réponse initiaux sont reçus.

void

Appelée lorsque des bandes-annonces sont reçues avant la fermeture du flux.

abstract void

Appelée lorsque le flux est prêt pour la lecture et l'écriture.

abstract void

Appelée lorsqu'aucune donnée ne doit être lue ou écrite, et que le flux est fermé à distance et localement.

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

Appelée lorsque l'intégralité du ByteBuffer transmis à write() est envoyée.

Constructeurs publics

Rappel

public Callback()

Méthodes publiques

onCanceled

public void onCanceled(BidirectionalStream stream, UrlResponseInfo info)

Appelée si le flux a été annulé via cancel. Une fois appelée, aucune autre méthode BidirectionalStream.Callback ne sera appelée. L'implémentation par défaut n'effectue aucune action.

Paramètres
BidirectionalStream stream

Flux qui a été annulé

UrlResponseInfo info

Informations sur la réponse. Peut être null si aucune réponse n'a été reçue.

onFailed

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

Appelée si le flux a échoué pour une raison quelconque après start. Les codes d'erreur HTTP/2 sont mappés aux codes getCronetInternalErrorCode. Une fois appelée, aucune autre méthode BidirectionalStream.Callback ne sera appelée.

Paramètres
BidirectionalStream stream

Flux qui a échoué

UrlResponseInfo info

Informations sur la réponse. Peut être null si aucune réponse n'a été reçue.

CronetException error

Informations sur l'échec

onReadCompleted

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

Appelée lorsque des données sont lues dans le tampon transmis à read(). Seule une partie du tampon peut être remplie. Pour continuer la lecture, appelez read(). Elle peut être appelée après onResponseTrailersReceived(), s'il y avait des données de lecture en attente avant la réception des bandes-annonces.

Paramètres
BidirectionalStream stream

Flux sur lequel la lecture est terminée

UrlResponseInfo info

Informations sur la réponse

ByteBuffer buffer

Tampon qui a été transmis à read(), et qui contient maintenant les données reçues. La limite du tampon n'est pas modifiée. La position du tampon est définie à la fin des données reçues. Si la position n'est pas mise à jour, cela signifie que le côté distant a signalé qu'il n'enverrait plus de données.

boolean endOfStream

Si la valeur est "true", il s'agit des dernières données lues, le côté distant n'enverra plus de données et le côté lecture est fermé.

onResponseHeadersReceived

public abstract void onResponseHeadersReceived(
    BidirectionalStream stream,
    UrlResponseInfo info
)

Appelée lorsque les en-têtes de réponse initiaux sont reçus. Les en-têtes sont disponibles à partir de info.getAllHeaders(). Le consommateur peut appeler read() pour commencer la lecture. Le consommateur peut appeler write() pour commencer l'écriture ou fermer le flux.

Paramètres
BidirectionalStream stream

Flux sur lequel les en-têtes de réponse ont été reçus.

UrlResponseInfo info

Informations sur la réponse.

onResponseTrailersReceived

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

Appelée lorsque des bandes-annonces sont reçues avant la fermeture du flux. Appelée uniquement lorsque le serveur envoie des bandes-annonces, ce qui n'est pas toujours le cas. Peut être appelée lorsqu'il reste des données de lecture dans le tampon local. L'implémentation par défaut n'effectue aucune action.

Paramètres
BidirectionalStream stream

Flux sur lequel les bandes-annonces de réponse ont été reçues

UrlResponseInfo info

Informations sur la réponse

UrlResponseInfo.HeaderBlock trailers

Bandes-annonces reçues

onStreamReady

public abstract void onStreamReady(BidirectionalStream stream)

Appelée lorsque le flux est prêt pour la lecture et l'écriture. Le consommateur peut appeler read() pour commencer la lecture des données. Le consommateur peut appeler write() pour commencer l'écriture des données.

Paramètres
BidirectionalStream stream

Flux qui est prêt.

onSucceeded

public abstract void onSucceeded(BidirectionalStream stream, UrlResponseInfo info)

Appelée lorsqu'aucune donnée ne doit être lue ou écrite, et que le flux est fermé à distance et localement. Une fois appelée, aucune autre méthode BidirectionalStream.Callback ne sera appelée.

Paramètres
BidirectionalStream stream

Flux qui est fermé

UrlResponseInfo info

Informations sur la réponse

onWriteCompleted

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

Appelée lorsque l'intégralité du ByteBuffer transmis à write() est envoyée. La position du tampon est mise à jour pour être identique à la limite du tampon. La limite du tampon n'est pas modifiée. Pour continuer l'écriture, appelez write().

Paramètres
BidirectionalStream stream

Flux sur lequel l'écriture est terminée

UrlResponseInfo info

Informations sur la réponse

ByteBuffer buffer

Tampon qui a été transmis à write(). La position du tampon est définie sur la limite du tampon. La limite du tampon n'est pas modifiée.

boolean endOfStream

Indicateur endOfStream qui a été transmis au write() correspondant. Si la valeur est "true", le côté écriture est fermé.