Class SerializedMultiEmitter<T>

  • Type Parameters:
    T - the type of item
    All Implemented Interfaces:
    MultiEmitter<T>, MultiSubscriber<T>, org.reactivestreams.Subscriber<T>

    public class SerializedMultiEmitter<T>
    extends java.lang.Object
    implements MultiEmitter<T>, MultiSubscriber<T>
    Serializes calls to onItem, onFailure and onCompletion and their Reactive Streams equivalent.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void complete()
      Emits a completion event downstream indicating that no more item will be sent.
      MultiEmitter<T> emit​(T item)
      Emits an item event downstream.
      void fail​(java.lang.Throwable failure)
      Emits a failure event downstream with the given exception.
      boolean isCancelled()  
      void onCompletion()
      Method called when the upstream emits a completion terminal event.
      void onFailure​(java.lang.Throwable failure)
      Method called when the upstream emits a failure terminal event.
      void onItem​(T item)
      Method called when the upstream emits an item event, in response to to requests to Subscription.request(long).
      void onSubscribe​(org.reactivestreams.Subscription s)  
      MultiEmitter<T> onTermination​(java.lang.Runnable onTermination)
      Attaches a @{code termination} event handler invoked when the downstream Subscription is cancelled, or when the emitter has emitted either a completion or failure event.
      long requested()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • onSubscribe

        public void onSubscribe​(org.reactivestreams.Subscription s)
        Specified by:
        onSubscribe in interface org.reactivestreams.Subscriber<T>
      • onItem

        public void onItem​(T item)
        Description copied from interface: MultiSubscriber
        Method called when the upstream emits an item event, in response to to requests to Subscription.request(long).
        Specified by:
        onItem in interface MultiSubscriber<T>
        Parameters:
        item - the item, must not be null.
      • onFailure

        public void onFailure​(java.lang.Throwable failure)
        Description copied from interface: MultiSubscriber
        Method called when the upstream emits a failure terminal event.

        No further events will be sent even if Subscription.request(long) is invoked again.

        Specified by:
        onFailure in interface MultiSubscriber<T>
        Parameters:
        failure - the failure, must not be null.
      • onCompletion

        public void onCompletion()
        Description copied from interface: MultiSubscriber
        Method called when the upstream emits a completion terminal event.

        No further events will be sent even if Subscription.request(long) is invoked again.

        Specified by:
        onCompletion in interface MultiSubscriber<T>
      • emit

        public MultiEmitter<T> emit​(T item)
        Description copied from interface: MultiEmitter
        Emits an item event downstream.

        Calling this method after a failure or a completion events has no effect.

        Specified by:
        emit in interface MultiEmitter<T>
        Parameters:
        item - the item, must not be null
        Returns:
        this emitter, so firing item events can be chained.
      • fail

        public void fail​(java.lang.Throwable failure)
        Description copied from interface: MultiEmitter
        Emits a failure event downstream with the given exception.

        Calling this method multiple times or after the MultiEmitter.complete() method has no effect.

        Specified by:
        fail in interface MultiEmitter<T>
        Parameters:
        failure - the exception, must not be null
      • complete

        public void complete()
        Description copied from interface: MultiEmitter
        Emits a completion event downstream indicating that no more item will be sent.

        Calling this method multiple times or after the MultiEmitter.fail(Throwable) method has no effect.

        Specified by:
        complete in interface MultiEmitter<T>
      • onTermination

        public MultiEmitter<T> onTermination​(java.lang.Runnable onTermination)
        Description copied from interface: MultiEmitter
        Attaches a @{code termination} event handler invoked when the downstream Subscription is cancelled, or when the emitter has emitted either a completion or failure event.

        This method allows cleanup resources once the emitter can be disposed (has reached a terminal state).

        If the registration of the onTermination callback is done after the termination, it invokes the callback immediately.

        Specified by:
        onTermination in interface MultiEmitter<T>
        Parameters:
        onTermination - the action to run on termination, must not be null
        Returns:
        this emitter
      • isCancelled

        public boolean isCancelled()
        Specified by:
        isCancelled in interface MultiEmitter<T>
        Returns:
        true if the downstream cancelled the stream or the emitter was terminated (with a completion or failure events).
      • requested

        public long requested()
        Specified by:
        requested in interface MultiEmitter<T>
        Returns:
        the current outstanding request amount.