类 AbstractListenerWriteFlushProcessor<T>

java.lang.Object
cn.taketoday.http.server.reactive.AbstractListenerWriteFlushProcessor<T>
类型参数:
T - the type of element signaled to the Subscriber
所有已实现的接口:
org.reactivestreams.Processor<org.reactivestreams.Publisher<? extends T>,Void>, org.reactivestreams.Publisher<Void>, org.reactivestreams.Subscriber<org.reactivestreams.Publisher<? extends T>>
直接已知子类:
ServletServerHttpResponse.ResponseBodyFlushProcessor, UndertowServerHttpResponse.ResponseBodyFlushProcessor

public abstract class AbstractListenerWriteFlushProcessor<T> extends Object implements org.reactivestreams.Processor<org.reactivestreams.Publisher<? extends T>,Void>
An alternative to AbstractListenerWriteProcessor but instead writing a Publisher<Publisher<T>> with flush boundaries enforces after the completion of each nested Publisher.
从以下版本开始:
4.0
作者:
Arjen Poutsma, Violeta Georgieva, Rossen Stoyanchev
  • 字段详细资料

  • 构造器详细资料

    • AbstractListenerWriteFlushProcessor

      public AbstractListenerWriteFlushProcessor()
    • AbstractListenerWriteFlushProcessor

      public AbstractListenerWriteFlushProcessor(String logPrefix)
      Create an instance with the given log prefix.
  • 方法详细资料

    • getLogPrefix

      public String getLogPrefix()
      Create an instance with the given log prefix.
    • onSubscribe

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

      public final void onNext(org.reactivestreams.Publisher<? extends T> publisher)
      指定者:
      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>
    • onFlushPossible

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

      protected void cancel()
      Cancel the upstream chain of "write" Publishers only, for example due to Servlet container error/completion notifications. This should usually be followed up with a call to either onError(Throwable) or onComplete() to notify the downstream chain, that is unless cancellation came from downstream.
    • subscribe

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

      protected abstract org.reactivestreams.Processor<? super T,Void> createWriteProcessor()
      Create a new processor for the current flush boundary.
    • isWritePossible

      protected abstract boolean isWritePossible()
      Whether writing/flushing is possible.
    • flush

      protected abstract void flush() throws IOException
      Flush the output if ready, or otherwise isFlushPending() should return true after.

      This is primarily for the Servlet non-blocking I/O API where flush cannot be called without a readyToWrite check.

      抛出:
      IOException
    • isFlushPending

      protected abstract boolean isFlushPending()
      Whether flushing is pending.

      This is primarily for the Servlet non-blocking I/O API where flush cannot be called without a readyToWrite check.

    • flushingFailed

      protected void flushingFailed(Throwable t)
      Invoked when an error happens while flushing.

      The default implementation cancels the upstream write publisher and sends an onError downstream as the result of request handling.

    • changeState

    • flushIfPossible

      private void flushIfPossible()