BidirectionalStream

public abstract class BidirectionalStream


HTTP/2 veya QUIC bağlantıları üzerinden verilerin çift yönlü olarak gönderilmesi ve alınması için sınıf. Builder tarafından oluşturuldu.

Not: BidirectionalStream yöntemlerinde sıralama kısıtlamaları vardır. Kısıtlamaların açıklaması için lütfen tek tek yöntemleri inceleyin.

Özet

İç içe yerleştirilmiş türler

public abstract class BidirectionalStream.Builder

BidirectionalStream için derleyici.

public abstract class BidirectionalStream.Callback

BidirectionalStream cihazından geri aramalar almak için kullanılan geri arama sınıfı.

Herkese açık oluşturucular

Herkese açık yöntemler

abstract void

Yayını iptal eder.

abstract void

Bekleyen yazma işlemlerini temizler.

abstract boolean

Akış başarıyla başlatıldıysa ve tamamlandıysa (başarılı, iptal edildi veya başarısız oldu) true değerini döndürür.

abstract void
read(ByteBuffer buffer)

Akıştan gelen verileri sağlanan arabelleğe okur.

abstract void

Akışı başlatır. Tüm geri çağırmalar, BidirectionalStream.Builder oluşturucusuna iletilen callback bağımsız değişkenine gider.

abstract void
write(ByteBuffer buffer, boolean endOfStream)

Akışa yazılacak verileri ekler.

Herkese açık oluşturucular

BidirectionalStream

public BidirectionalStream()

Herkese açık yöntemler

iptal

public abstract void cancel()

Yayını iptal eder. start işleminden sonra herhangi bir zamanda çağrılabilir. İptal işlemi tamamlandığında onCanceled() çağrılır ve başka geri çağırma yöntemi çağrılmaz. Yayın tamamlandıysa veya başlamadıysa cancel() işlevinin çağrılması hiçbir etki yaratmaz ve onCanceled() işlevi çağrılmaz. BidirectionalStream oluşturma sırasında iletilen Executor, görevleri tek bir iş parçacığında çalıştırırsa ve bu iş parçacığında cancel() çağrılırsa cancel() çağrıldıktan sonra onCanceled() dışındaki hiçbir dinleyici yöntemi çağrılmaz. Aksi takdirde, cancel() tamamlandıktan sonra en fazla bir geri çağırma yöntemi çağrılabilir.

boşaltmak

public abstract void flush()

Bekleyen yazma işlemlerini temizler. Bu yöntem, onStreamReady() tarihinden önce çağrılmamalıdır. Daha önce gecikmiş write()'ler için arabellek gönderildiğinde ilgili onWriteCompleted() çağrılır.

isDone

public abstract boolean isDone()

Akış başarıyla başlatıldıysa ve tamamlandıysa (başarılı, iptal edildi veya başarısız oldu) true değerini döndürür.

İadeler
boolean

Akış başarıyla başlatıldıysa ve şu anda tamamlandıysa (tamamlandı, iptal edildi veya başarısız oldu) true değerini, aksi takdirde akışın henüz başlatılmadığını veya devam ettiğini belirtmek için false değerini döndürür.

read

public abstract void read(ByteBuffer buffer)

Akıştan gelen verileri sağlanan arabelleğe okur. Callback sınıfının onStreamReady()/ onResponseHeadersReceived() ve onReadCompleted() yöntemlerinin her çağrılmasına yanıt olarak en fazla bir kez çağrılabilir. Her çağrı, veri okunursa Callback'nın onReadCompleted() yönteminin, hata varsa da onFailed() yönteminin çağrılmasıyla sonuçlanır. buffer içine buffer.position() ile başlayan verileri okuma girişimi başlatılır. En fazla buffer.remaining() bayt okunur. buffer.position(), onReadCompleted() çağrıldığında ne kadar veri okunduğunu belirtmek için güncellenir.

Parametreler
ByteBuffer buffer

Verilerin okunacağı ByteBuffer. Doğrudan ByteBuffer olmalıdır. Yerleştirici, onReadCompleted(), onCanceled() veya onFailed() çağrılana kadar arabelleğin konumunu, sınırını ya da konumu ile sınırı arasındaki verileri okumamalı veya değiştirmemelidir.

start

public abstract void start()

Akışı başlatır. Tüm geri çağırmalar, BidirectionalStream.Builder oluşturucusuna iletilen callback bağımsız değişkenine gider. Yalnızca bir kez çağrılmalıdır.

write

public abstract void write(ByteBuffer buffer, boolean endOfStream)

Akışa yazılacak verileri ekler. Veriler yalnızca flush() çağrıldıktan sonra gönderilir. Her çağrı, veri gönderilirse Callback'nın onWriteCompleted() yönteminin, hata varsa da onFailed() yönteminin çağrılmasıyla sonuçlanır.

buffer kaynağından buffer.position() saatinde başlayan verileri yazma girişimi başlatıldı. buffer.remaining() bayt yazılacak. onWriteCompleted() yalnızca ByteBuffer'ın tamamı yazıldığında çağrılır.

Parametreler
ByteBuffer buffer

Verilerin yazılacağı ByteBuffer. Doğrudan ByteBuffer olmalıdır. Yerleştirici, onWriteCompleted(), onCanceled() veya onFailed() çağrılana kadar arabelleğin konumunu, sınırını ya da konumu ile sınırı arasındaki verileri okumamalı veya değiştirmemelidir. endOfStream, true olduğunda boş olabilir.

boolean endOfStream

ise true yazılacak son arabellektir ve yazıldıktan sonra akış istemci tarafında kapatılır. Bu da uzaktaki taraf zaten kapatılmışsa yarı kapalı akış veya tamamen kapalı akışla sonuçlanır.buffer