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