类 AbstractListenerWriteProcessor<T>

  • 类型参数:
    T - the type of element signaled to the Subscriber
    所有已实现的接口:
    org.reactivestreams.Processor<T,​Void>, org.reactivestreams.Publisher<Void>, org.reactivestreams.Subscriber<T>
    直接已知子类:
    AbstractListenerWebSocketSession.WebSocketSendProcessor

    public abstract class AbstractListenerWriteProcessor<T>
    extends Object
    implements org.reactivestreams.Processor<T,​Void>
    Abstract base class for Processor implementations that bridge between event-listener write APIs and Reactive Streams.

    Specifically a base class for writing to the HTTP response body with Servlet 3.1 non-blocking I/O and Undertow XNIO as well for writing WebSocket messages through the Java WebSocket API (JSR-356), Jetty, and Undertow.

    从以下版本开始:
    5.0
    作者:
    Arjen Poutsma, Violeta Georgieva, Rossen Stoyanchev
    • 字段概要

      字段 
      修饰符和类型字段说明
      protected static LogrsWriteLogger
      Special logger for debugging Reactive Streams signals.
    • 方法概要

      所有方法 实例方法 抽象方法 具体方法 已过时的方法 
      修饰符和类型方法说明
      voidcancel()
      Invoked during an error or completion callback from the underlying container to cancel the upstream subscription.
      protected voiddataReceived​(T data)
      Template method invoked after a data item to write is received via Subscriber.onNext(Object).
      protected abstract voiddiscardData​(T data)
      Invoked after any error (either from the upstream write Publisher, or from I/O operations to the underlying server) and cancellation to discard in-flight data that was in the process of being written when the error took place.
      StringgetLogPrefix()
      Get the configured log prefix.
      protected abstract booleanisDataEmpty​(T data)
      Whether the given data item has any content to write.
      protected abstract booleanisWritePossible()
      Whether writing is possible.
      voidonComplete()
      Completion signal from the upstream, write Publisher.
      voidonError​(Throwable ex)
      Error signal from the upstream, write Publisher.
      voidonNext​(T data) 
      voidonSubscribe​(org.reactivestreams.Subscription subscription) 
      voidonWritePossible()
      Invoked when writing is possible, either in the same thread after a check via isWritePossible(), or as a callback from the underlying container.
      voidsubscribe​(org.reactivestreams.Subscriber<? super Void> subscriber) 
      protected abstract booleanwrite​(T data)
      Write the given item.
      protected voidwritingComplete()
      Invoked after onComplete or onError notification.
      protected voidwritingFailed​(Throwable ex)
      Invoked when an I/O error occurs during a write.
      protected voidwritingPaused()
      已过时。
      originally introduced for Undertow to stop write notifications when no data is available, but deprecated as of as of 5.0.6 since constant switching on every requested item causes a significant slowdown.
    • 方法详细资料

      • getLogPrefix

        public String getLogPrefix()
        Get the configured log prefix.
        从以下版本开始:
        5.1
      • onSubscribe

        public final void onSubscribe​(org.reactivestreams.Subscription subscription)
        指定者:
        onSubscribe 在接口中 org.reactivestreams.Subscriber<T>
      • onNext

        public final void onNext​(T data)
        指定者:
        onNext 在接口中 org.reactivestreams.Subscriber<T>
      • onError

        public final void onError​(Throwable ex)
        Error signal from the upstream, write Publisher. This is also used by sub-classes to delegate error notifications from the container.
        指定者:
        onError 在接口中 org.reactivestreams.Subscriber<T>
      • onComplete

        public final void onComplete()
        Completion signal from the upstream, write Publisher. This is also used by sub-classes to delegate completion notifications from the container.
        指定者:
        onComplete 在接口中 org.reactivestreams.Subscriber<T>
      • onWritePossible

        public final void onWritePossible()
        Invoked when writing is possible, either in the same thread after a check via isWritePossible(), or as a callback from the underlying container.
      • cancel

        public void cancel()
        Invoked during an error or completion callback from the underlying container to cancel the upstream subscription.
      • subscribe

        public final void subscribe​(org.reactivestreams.Subscriber<? super Void> subscriber)
        指定者:
        subscribe 在接口中 org.reactivestreams.Publisher<T>
      • isDataEmpty

        protected abstract boolean isDataEmpty​(T data)
        Whether the given data item has any content to write. If false the item is not written.
      • dataReceived

        protected void dataReceived​(T data)
        Template method invoked after a data item to write is received via Subscriber.onNext(Object). The default implementation saves the data item for writing once that is possible.
      • isWritePossible

        protected abstract boolean isWritePossible()
        Whether writing is possible.
      • write

        protected abstract boolean write​(T data)
                                  throws IOException
        Write the given item.

        Note: Sub-classes are responsible for releasing any data buffer associated with the item, once fully written, if pooled buffers apply to the underlying container.

        参数:
        data - the item to write
        返回:
        true if the current data item was written completely and a new item requested, or false if it was written partially and we'll need more write callbacks before it is fully written
        抛出:
        IOException
      • writingPaused

        @Deprecated
        protected void writingPaused()
        已过时。
        originally introduced for Undertow to stop write notifications when no data is available, but deprecated as of as of 5.0.6 since constant switching on every requested item causes a significant slowdown.
        Invoked after the current data has been written and before requesting the next item from the upstream, write Publisher.

        The default implementation is a no-op.

      • writingComplete

        protected void writingComplete()
        Invoked after onComplete or onError notification.

        The default implementation is a no-op.

      • writingFailed

        protected void writingFailed​(Throwable ex)
        Invoked when an I/O error occurs during a write. Sub-classes may choose to ignore this if they know the underlying API will provide an error notification in a container thread.

        Defaults to no-op.

      • discardData

        protected abstract void discardData​(T data)
        Invoked after any error (either from the upstream write Publisher, or from I/O operations to the underlying server) and cancellation to discard in-flight data that was in the process of being written when the error took place.
        参数:
        data - the data to be released
        从以下版本开始:
        5.0.11