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,N>
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.
- Since:
- 4.0.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
Publisher.Cached<V>
A publisher that caches the last value received.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Publisher.Cached<V>
cache()
Return a publisher that will track its most recent value.default Publisher.Cached<V>
cache(@Nullable V initialValue)
Create a cached publisher with an initial value.static <V,E extends java.lang.Exception>
Publisher<V>execute(CheckedSupplier<V,E> action)
Execute an action returning a single value on the commonForkJoinPool
, and pass the result to any subscribers.static <V,E extends java.lang.Exception>
Publisher<V>execute(CheckedSupplier<V,E> action, java.util.concurrent.Executor executor)
Execute an action returning a single value on the providedExecutor
, and pass the result to any subscribers.java.util.concurrent.Executor
executor()
Get the executor used to handle published events.boolean
hasSubscribers()
Return whether or not this Publisher has any subscribers.default <R> Publisher<R>
map(CheckedFunction<? super V,? extends R,TransactionFailedException> mapper)
Create a new publisher that will transform events published.Disposable
subscribe(Subscriber<? super V> subscriber)
Subscribe to updates from this Publisher.
-
-
-
Method Detail
-
execute
static <V,E extends java.lang.Exception> Publisher<V> execute(CheckedSupplier<V,E> action)
Execute an action returning a single value on the commonForkJoinPool
, 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 typeE
- exception thrown- Parameters:
action
- the action to perform- Returns:
- a publisher
- Since:
- 4.0.0
-
execute
static <V,E extends java.lang.Exception> Publisher<V> execute(CheckedSupplier<V,E> action, java.util.concurrent.Executor executor)
Execute an action returning a single value on the providedExecutor
, 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 typeE
- exception thrown- Parameters:
action
- the action to performexecutor
- the executor to perform this operation on- Returns:
- a publisher
- Since:
- 4.0.0
-
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 returnedDisposable
will be a no-op.- Parameters:
subscriber
- the listener to register- Returns:
- a disposable that can be used to cancel this subscription
- Since:
- 4.0.0
-
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
- Since:
- 4.0.0
-
map
default <R> Publisher<R> map(CheckedFunction<? super V,? extends R,TransactionFailedException> mapper)
Create a new publisher that will transform events published.- Type Parameters:
R
- output value type- Parameters:
mapper
- transformer function- Returns:
- a new publisher
- Since:
- 4.0.0
-
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 this publisher.- Returns:
- a publisher based on this one
- Since:
- 4.0.0
-
cache
default Publisher.Cached<V> cache(@Nullable V initialValue)
Create a cached publisher with an initial value.- Parameters:
initialValue
- value to initialize the returned publisher with- Returns:
- publisher that will cache future responses
- Since:
- 4.0.0
-
executor
java.util.concurrent.Executor executor()
Get the executor used to handle published events.- Returns:
- the executor
- Since:
- 4.0.0
-
-