BidirectionalStream

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

BidirectionalStream için derleyici.

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

Herkese açık oluşturucular

Herkese açık işlevler

abstract Unit

Yayını iptal eder.

abstract Unit

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 Unit
read(buffer: ByteBuffer!)

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

abstract Unit

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

abstract Unit
write(buffer: ByteBuffer!, endOfStream: Boolean)

Akışa yazılacak verileri ekler.

Herkese açık oluşturucular

BidirectionalStream

BidirectionalStream()

Herkese açık işlevler

iptal

abstract fun cancel(): Unit

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

abstract fun flush(): Unit

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

abstract fun isDone(): 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.

İ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

abstract fun read(buffer: ByteBuffer!): Unit

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
buffer: ByteBuffer!

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

abstract fun start(): Unit

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

abstract fun write(buffer: ByteBuffer!, endOfStream: Boolean): Unit

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
buffer: ByteBuffer!

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.

endOfStream: Boolean

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