クラス AbstractListenerWriteProcessor<T>
java.lang.ObjectSE
org.springframework.http.server.reactive.AbstractListenerWriteProcessor<T>
- 型パラメーター:
T
-Subscriber
に通知される要素の型
- 実装されたすべてのインターフェース:
Processor<T,
、VoidSE> Publisher<VoidSE>
、Subscriber<T>
public abstract class AbstractListenerWriteProcessor<T>
extends ObjectSE
implements Processor<T,VoidSE>
イベントリスナー書き込み API と Reactive Streams を橋渡しする
Processor
実装の抽象基本クラス。具体的には、サーブレットのノンブロッキング I/O および Undertow XNIO を使用して HTTP レスポンス本文に書き込むための基本クラスと、Jakarta WebSocket API (JSR-356)、Jetty、Undertow を介して WebSocket メッセージを書き込むための基本クラスです。
- 導入:
- 5.0
- 作成者:
- Arjen Poutsma, Violeta Georgieva, Rossen Stoyanchev
フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
cancel()
サーブレットコンテナーのエラー / 完了通知などが原因で、アップストリームの「書き込み」パブリッシャーのみをキャンセルします。protected void
dataReceived
(T data) 書き込むデータ項目がSubscriber.onNext(Object)
を介して受信された後に呼び出されるテンプレートメソッド。protected abstract void
discardData
(T data) エラー(アップストリーム書き込みパブリッシャーから、または基になるサーバーへの I/O 操作から)の後に呼び出され、エラーが発生したときに書き込まれていた処理中のデータを破棄するためのキャンセル。設定されたログプレフィックスを取得します。protected abstract boolean
isDataEmpty
(T data) 指定されたデータ項目に書き込む内容があるかどうか。protected abstract boolean
書き込み可能かどうか。final void
アップストリームからの補完信号、パブリッシャーに書き込みます。final void
onError
(ThrowableSE ex) アップストリームからのエラー信号、パブリッシャーに書き込みます。final void
final void
onSubscribe
(Subscription subscription) final void
isWritePossible()
によるチェックの後、同じスレッドで、基礎となるコンテナーからのコールバックとして、書き込みが可能なときに呼び出されます。final void
subscribe
(Subscriber<? super VoidSE> subscriber) protected abstract boolean
与えられたアイテムを書いてください。protected void
onComplete または onError 通知の後に呼び出されます。protected void
書き込み中に I/O エラーが発生すると呼び出されます。protected void
使用すべきではありません。もともと Undertow は、データが利用できないときに書き込み通知を停止するために導入されましたが、リクエストされたすべてのアイテムを常にオンにすると大幅な速度低下が発生するため、5.0.6 では非推奨になりました。
フィールドの詳細
rsWriteLogger
Reactive Streams 信号をデバッグするための特別なロガー。- 関連事項:
LogDelegateFactory.getHiddenLog(Class)
AbstractListenerReadPublisher.rsReadLogger
AbstractListenerWriteFlushProcessor.rsWriteFlushLogger
WriteResultPublisher.rsWriteResultLogger
コンストラクターの詳細
AbstractListenerWriteProcessor
public AbstractListenerWriteProcessor()AbstractListenerWriteProcessor
指定されたログプレフィックスでインスタンスを作成します。- 導入:
- 5.1
メソッドの詳細
getLogPrefix
設定されたログプレフィックスを取得します。- 導入:
- 5.1
onSubscribe
- 次で指定:
- インターフェース
Subscriber<T>
のonSubscribe
onNext
- 次で指定:
- インターフェース
Subscriber<T>
のonNext
onError
アップストリームからのエラー信号、Publisher を書き込みます。これは、コンテナーからのエラー通知を委譲するためにサブクラスでも使用されます。- 次で指定:
- インターフェース
Subscriber<T>
のonError
onComplete
public final void onComplete()アップストリームからの補完信号、Publisher を書き込みます。これは、コンテナーからの補完通知を委譲するためにサブクラスでも使用されます。- 次で指定:
- インターフェース
Subscriber<T>
のonComplete
onWritePossible
public final void onWritePossible()isWritePossible()
によるチェックの後、同じスレッドで、基礎となるコンテナーからのコールバックとして、書き込みが可能なときに呼び出されます。cancel
public void cancel()サーブレットコンテナーのエラー / 完了通知などが原因で、アップストリームの「書き込み」パブリッシャーのみをキャンセルします。これは通常、onError(Throwable)
またはonComplete()
のいずれかを呼び出して、ダウンストリームチェーンに通知する必要があります。つまり、ダウンストリームからキャンセルが発生した場合を除きます。subscribe
isDataEmpty
指定されたデータ項目に書き込む内容があるかどうか。false の場合、アイテムは書き込まれません。dataReceived
書き込むデータ項目がSubscriber.onNext(Object)
を介して受信された後に呼び出されるテンプレートメソッド。デフォルトの実装では、可能な場合は書き込み用にデータ項目を保存します。isWritePossible
protected abstract boolean isWritePossible()書き込み可能かどうか。write
与えられたアイテムを書いてください。注意 : プールされたバッファーが基になるコンテナーに適用される場合、サブクラスは、完全に書き込まれた後、アイテムに関連付けられたデータバッファーを解放する必要があります。
- パラメーター:
data
- 書き込むアイテム- 戻り値:
- 現在のデータ項目が完全に書き込まれ、新しい項目がリクエストされた場合は
true
、部分的に書き込まれた場合はfalse
であり、完全に書き込まれる前にさらに書き込みコールバックが必要になります - 例外:
IOExceptionSE
writingPaused
使用すべきではありません。もともと Undertow は、データが利用できないときに書き込み通知を停止するために導入されましたが、リクエストされたすべてのアイテムを常にオンにすると大幅な速度低下が発生するため、5.0.6 では非推奨になりました。現在のデータが書き込まれた後、アップストリームから次のアイテムをリクエストする前に呼び出され、パブリッシャーに書き込みます。デフォルトの実装はノーオペレーションです。
writingComplete
protected void writingComplete()onComplete または onError 通知の後に呼び出されます。デフォルトの実装はノーオペレーションです。
writingFailed
書き込み中に I/O エラーが発生すると呼び出されます。サブクラスは、基になる API がコンテナースレッドでエラー通知を提供することがわかっている場合、これを無視することを選択できます。デフォルトは no-op です。
discardData
エラー(アップストリーム書き込みパブリッシャーから、または基になるサーバーへの I/O 操作から)の後に呼び出され、エラーが発生したときに書き込まれていた処理中のデータを破棄するためのキャンセル。- パラメーター:
data
- リリースされるデータ- 導入:
- 5.0.11