Interface Publisher<V>

Type Parameters:
V - The type of notification received by subscribers
All Known Subinterfaces:
Processor<I,​O>, Processor.Iso<V>, Processor.Transactional<I,​O>, Processor.TransactionalIso<V>, Publisher.Cached<V>, ValueReference<T>

public interface Publisher<V>
Something that can publish events.

Each subscriber is responsible for removing itself from this stream, by using the Disposable returned upon subscription

  • Method Details

    • execute

      static <V,​ E extends Exception> Publisher<V> execute​(CheckedSupplier<V,​E> action)
      Execute an action returning a single value on the common ForkJoinPool, and pass the result to any subscribers. Subscribers who only begin subscribing after the operation has been completed will receive the result of the operation.
      Type Parameters:
      V - returned value type
      E - exception thrown
      Parameters:
      action - The action to perform
      Returns:
      a publisher
    • execute

      static <V,​ E extends Exception> Publisher<V> execute​(CheckedSupplier<V,​E> action, Executor executor)
      Execute an action returning a single value on the provided Executor, and pass the result to any subscribers. Subscribers who only begin subscribing after the operation has been completed will receive the result of the operation.
      Type Parameters:
      V - returned value type
      E - exception thrown
      Parameters:
      action - The action to perform
      executor - The executor to perform this operation on
      Returns:
      a publisher
    • subscribe

      Disposable subscribe​(Subscriber<? super V> subscriber)
      Subscribe to updates from this Publisher. If this is already closed, the Subscriber will receive an error event with an IllegalStateException, and the returned Disposable will be a no-op.
      Parameters:
      subscriber - The listener to register
      Returns:
      A disposable that can be used to cancel this subscription
    • hasSubscribers

      boolean hasSubscribers()
      Return whether or not this Publisher has any subscribers.

      In a concurrent environment, this value could change from the time of calling.

      Returns:
      if there are subscribers
    • map

      default <R> Publisher<R> map​(CheckedFunction<? super V,​? extends R,​TransactionFailedException> mapper)
    • cache

      default Publisher.Cached<V> cache()
      Return a publisher that will track its most recent value. The provided processor won't have a value until one is submitted to its owning publisher.
      Returns:
      A publisher based on this one
    • cache

      default Publisher.Cached<V> cache​(@Nullable V initialValue)
      A cached publisher with an initial value
      Parameters:
      initialValue - The value to
      Returns:
      The
    • getExecutor

      Get the executor that will be used to handle published
      Returns:
      the executor