クラス AbstractListenerWriteProcessor<T>

java.lang.ObjectSE
org.springframework.http.server.reactive.AbstractListenerWriteProcessor<T>
型パラメーター:
T - Subscriber に通知される要素の型
実装されたすべてのインターフェース:
Processor<T,VoidSE>Publisher<VoidSE>Subscriber<T>
既知の直属サブクラス
AbstractListenerWebSocketSession.WebSocketSendProcessor

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
  • フィールドサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    protected static final Log
    Reactive Streams 信号をデバッグするための特別なロガー。
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    指定されたログプレフィックスでインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    サーブレットコンテナーのエラー / 完了通知などが原因で、アップストリームの「書き込み」パブリッシャーのみをキャンセルします。
    protected void
    書き込むデータ項目が Subscriber.onNext(Object) を介して受信された後に呼び出されるテンプレートメソッド。
    protected abstract void
    エラー(アップストリーム書き込みパブリッシャーから、または基になるサーバーへの I/O 操作から)の後に呼び出され、エラーが発生したときに書き込まれていた処理中のデータを破棄するためのキャンセル。
    設定されたログプレフィックスを取得します。
    protected abstract boolean
    指定されたデータ項目に書き込む内容があるかどうか。
    protected abstract boolean
    書き込み可能かどうか。
    final void
    アップストリームからの補完信号、パブリッシャーに書き込みます。
    final void
    アップストリームからのエラー信号、パブリッシャーに書き込みます。
    final void
    onNext(T data)
    final void
    final void
    isWritePossible() によるチェックの後、同じスレッドで、基礎となるコンテナーからのコールバックとして、書き込みが可能なときに呼び出されます。
    final void
    subscribe(Subscriber<? super VoidSE> subscriber)
    protected abstract boolean
    write(T data)
    与えられたアイテムを書いてください。
    protected void
    onComplete または onError 通知の後に呼び出されます。
    protected void
    書き込み中に I/O エラーが発生すると呼び出されます。
    protected void
    使用すべきではありません。
    もともと Undertow は、データが利用できないときに書き込み通知を停止するために導入されましたが、リクエストされたすべてのアイテムを常にオンにすると大幅な速度低下が発生するため、5.0.6 では非推奨になりました。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

  • コンストラクターの詳細

    • AbstractListenerWriteProcessor

      public AbstractListenerWriteProcessor()
    • AbstractListenerWriteProcessor

      public AbstractListenerWriteProcessor(StringSE logPrefix)
      指定されたログプレフィックスでインスタンスを作成します。
      導入:
      5.1
  • メソッドの詳細

    • getLogPrefix

      public StringSE getLogPrefix()
      設定されたログプレフィックスを取得します。
      導入:
      5.1
    • onSubscribe

      public final void onSubscribe(Subscription subscription)
      次で指定:
      インターフェース Subscriber<T>onSubscribe 
    • onNext

      public final void onNext(T data)
      次で指定:
      インターフェース Subscriber<T>onNext 
    • onError

      public final void onError(ThrowableSE ex)
      アップストリームからのエラー信号、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

      public final void subscribe(Subscriber<? super VoidSE> subscriber)
      次で指定:
      インターフェース Publisher<T>subscribe 
    • isDataEmpty

      protected abstract boolean isDataEmpty(T data)
      指定されたデータ項目に書き込む内容があるかどうか。false の場合、アイテムは書き込まれません。
    • dataReceived

      protected void dataReceived(T data)
      書き込むデータ項目が Subscriber.onNext(Object) を介して受信された後に呼び出されるテンプレートメソッド。デフォルトの実装では、可能な場合は書き込み用にデータ項目を保存します。
    • isWritePossible

      protected abstract boolean isWritePossible()
      書き込み可能かどうか。
    • write

      protected abstract boolean write(T data) throws IOExceptionSE
      与えられたアイテムを書いてください。

      注意 : プールされたバッファーが基になるコンテナーに適用される場合、サブクラスは、完全に書き込まれた後、アイテムに関連付けられたデータバッファーを解放する必要があります。

      パラメーター:
      data - 書き込むアイテム
      戻り値:
      現在のデータ項目が完全に書き込まれ、新しい項目がリクエストされた場合は true、部分的に書き込まれた場合は false であり、完全に書き込まれる前にさらに書き込みコールバックが必要になります
      例外:
      IOExceptionSE
    • writingPaused

      @DeprecatedSE protected void writingPaused()
      使用すべきではありません。
      もともと Undertow は、データが利用できないときに書き込み通知を停止するために導入されましたが、リクエストされたすべてのアイテムを常にオンにすると大幅な速度低下が発生するため、5.0.6 では非推奨になりました。
      現在のデータが書き込まれた後、アップストリームから次のアイテムをリクエストする前に呼び出され、パブリッシャーに書き込みます。

      デフォルトの実装はノーオペレーションです。

    • writingComplete

      protected void writingComplete()
      onComplete または onError 通知の後に呼び出されます。

      デフォルトの実装はノーオペレーションです。

    • writingFailed

      protected void writingFailed(ThrowableSE ex)
      書き込み中に I/O エラーが発生すると呼び出されます。サブクラスは、基になる API がコンテナースレッドでエラー通知を提供することがわかっている場合、これを無視することを選択できます。

      デフォルトは no-op です。

    • discardData

      protected abstract void discardData(T data)
      エラー(アップストリーム書き込みパブリッシャーから、または基になるサーバーへの I/O 操作から)の後に呼び出され、エラーが発生したときに書き込まれていた処理中のデータを破棄するためのキャンセル。
      パラメーター:
      data - リリースされるデータ
      導入:
      5.0.11