T - the input and output value typeSinks. Closest sink
is Sinks.many().multicast().directBestEffort(),
except it doesn't terminate overflowing downstreams.@Deprecated public final class DirectProcessor<T> extends FluxProcessor<T,T>
Note: DirectProcessor does not coordinate backpressure between its
Subscribers and the upstream, but consumes its upstream in an
unbounded manner.
In the case where a downstream Subscriber is not ready to receive items (hasn't
requested yet or enough), it will be terminated with an
IllegalStateException.
Hence in terms of interaction model, DirectProcessor only supports PUSH from the
source through the processor to the Subscribers.
Note: If there are no Subscribers, upstream items are dropped and only the terminal events are retained. A terminated DirectProcessor will emit the terminal signal to late subscribers.
Note: The implementation ignores Subscriptions set via onSubscribe.
Scannable.Attr<T>Disposable.Composite, Disposable.SwapOPERATOR_NAME_UNRELATED_WORDS_PATTERN| Modifier and Type | Method and Description |
|---|---|
boolean |
add(reactor.core.publisher.SinkManyBestEffort.DirectInner<T> s)
Deprecated.
Add a new
SinkManyBestEffort.DirectInner to this publisher. |
static <E> DirectProcessor<E> |
create()
Deprecated.
To be removed in 3.5. Closest sink is
Sinks.many().multicast().directBestEffort(),
except it doesn't terminate overflowing downstreams. |
Context |
currentContext()
Deprecated.
Request a
Context from dependent components which can include downstream
operators during subscribing or a terminal Subscriber. |
long |
downstreamCount()
Deprecated.
Return the number of active
Subscriber or -1 if untracked. |
Throwable |
getError()
Deprecated.
Current error if any, default to null
|
int |
getPrefetch()
Deprecated.
The prefetch configuration of the
Flux |
boolean |
hasDownstreams()
Deprecated.
Return true if any
Subscriber is actively subscribed |
Stream<? extends Scannable> |
inners()
Deprecated.
Return a
Stream of referenced inners (flatmap, multicast etc) |
protected boolean |
isIdentityProcessor()
Deprecated.
Return true if
FluxProcessor<T, T> |
boolean |
isTerminated()
Deprecated.
Has this upstream finished or "completed" / "failed" ?
|
void |
onComplete()
Deprecated.
|
void |
onError(Throwable throwable)
Deprecated.
|
void |
onNext(T t)
Deprecated.
|
void |
onSubscribe(Subscription s)
Deprecated.
Implementors should initialize any state used by
Subscriber.onNext(Object) before
calling Subscription.request(long). |
void |
remove(reactor.core.publisher.SinkManyBestEffort.DirectInner<T> s)
Deprecated.
Remove an
SinkManyBestEffort.DirectInner from this publisher. |
void |
subscribe(CoreSubscriber<? super T> actual)
Deprecated.
An internal
Publisher.subscribe(Subscriber) that will bypass
Hooks.onLastOperator(Function) pointcut. |
dispose, getBufferSize, hasCompleted, hasError, isSerialized, scanUnsafe, serialize, serializeAlways, sink, sink, switchOnNext, wrapall, any, as, blockFirst, blockFirst, blockLast, blockLast, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, bufferTimeout, bufferTimeout, bufferTimeout, bufferTimeout, bufferUntil, bufferUntil, bufferUntilChanged, bufferUntilChanged, bufferUntilChanged, bufferWhen, bufferWhen, bufferWhile, cache, cache, cache, cache, cache, cache, cancelOn, cast, checkpoint, checkpoint, checkpoint, collect, collect, collectList, collectMap, collectMap, collectMap, collectMultimap, collectMultimap, collectMultimap, collectSortedList, collectSortedList, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, concat, concat, concat, concat, concatDelayError, concatDelayError, concatDelayError, concatDelayError, concatMap, concatMap, concatMapDelayError, concatMapDelayError, concatMapDelayError, concatMapIterable, concatMapIterable, concatWith, concatWithValues, contextWrite, contextWrite, count, create, create, defaultIfEmpty, defer, deferContextual, deferWithContext, delayElements, delayElements, delaySequence, delaySequence, delaySubscription, delaySubscription, delaySubscription, delayUntil, dematerialize, distinct, distinct, distinct, distinct, distinctUntilChanged, distinctUntilChanged, distinctUntilChanged, doAfterTerminate, doFinally, doFirst, doOnCancel, doOnComplete, doOnDiscard, doOnEach, doOnError, doOnError, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, elapsed, elapsed, elementAt, elementAt, empty, error, error, error, expand, expand, expandDeep, expandDeep, filter, filterWhen, filterWhen, first, first, firstWithSignal, firstWithSignal, firstWithValue, firstWithValue, flatMap, flatMap, flatMap, flatMap, flatMapDelayError, flatMapIterable, flatMapIterable, flatMapSequential, flatMapSequential, flatMapSequential, flatMapSequentialDelayError, from, fromArray, fromIterable, fromStream, fromStream, generate, generate, generate, groupBy, groupBy, groupBy, groupBy, groupJoin, handle, hasElement, hasElements, hide, ignoreElements, index, index, interval, interval, interval, interval, join, just, just, last, last, limitRate, limitRate, limitRequest, log, log, log, log, log, log, map, mapNotNull, materialize, merge, merge, merge, merge, merge, merge, mergeComparing, mergeComparing, mergeComparing, mergeComparingDelayError, mergeComparingWith, mergeDelayError, mergeOrdered, mergeOrdered, mergeOrdered, mergeOrderedWith, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequential, mergeSequentialDelayError, mergeSequentialDelayError, mergeSequentialDelayError, mergeWith, metrics, name, never, next, ofType, onAssembly, onAssembly, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureError, onBackpressureLatest, onErrorContinue, onErrorContinue, onErrorContinue, onErrorMap, onErrorMap, onErrorMap, onErrorResume, onErrorResume, onErrorResume, onErrorReturn, onErrorReturn, onErrorReturn, onErrorStop, onTerminateDetach, or, parallel, parallel, parallel, publish, publish, publish, publish, publishNext, publishOn, publishOn, publishOn, push, push, range, reduce, reduce, reduceWith, repeat, repeat, repeat, repeat, repeatWhen, replay, replay, replay, replay, replay, replay, retry, retry, retryWhen, sample, sample, sampleFirst, sampleFirst, sampleTimeout, sampleTimeout, scan, scan, scanWith, share, shareNext, single, single, singleOrEmpty, skip, skip, skip, skipLast, skipUntil, skipUntilOther, skipWhile, sort, sort, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, subscribeOn, subscriberContext, subscriberContext, subscribeWith, switchIfEmpty, switchMap, switchMap, switchOnFirst, switchOnFirst, switchOnNext, switchOnNext, tag, take, take, take, take, takeLast, takeUntil, takeUntilOther, takeWhile, then, then, thenEmpty, thenMany, timed, timed, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timestamp, timestamp, toIterable, toIterable, toIterable, toStream, toStream, toString, transform, transformDeferred, transformDeferredContextual, using, using, usingWhen, usingWhen, window, window, window, window, window, window, window, windowTimeout, windowTimeout, windowTimeout, windowTimeout, windowUntil, windowUntil, windowUntil, windowUntilChanged, windowUntilChanged, windowUntilChanged, windowWhen, windowWhile, windowWhile, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWith, zipWith, zipWith, zipWithIterable, zipWithIterableclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitactuals, from, isScanAvailable, name, parents, scan, scanOrDefault, stepName, steps, tagsisDisposed@Deprecated public static <E> DirectProcessor<E> create()
Sinks.many().multicast().directBestEffort(),
except it doesn't terminate overflowing downstreams.DirectProcessorE - Type of processed signalspublic int getPrefetch()
FluxFluxgetPrefetch in class Flux<T>Flux, -1 if unspecifiedpublic Context currentContext()
CoreSubscriberContext from dependent components which can include downstream
operators during subscribing or a terminal Subscriber.currentContext in interface CoreSubscriber<T>currentContext in class FluxProcessor<T,T>Context.empty()public void onSubscribe(Subscription s)
CoreSubscriberSubscriber.onNext(Object) before
calling Subscription.request(long). Should further onNext related
state modification occur, thread-safety will be required.
Note that an invalid request <= 0 will not produce an onError and
will simply be ignored or reported through a debug-enabled
Logger.
onSubscribe in interface Subscriber<T>onSubscribe in interface CoreSubscriber<T>public void onComplete()
onComplete in interface Subscriber<T>public void onError(Throwable throwable)
onError in interface Subscriber<T>public void onNext(T t)
onNext in interface Subscriber<T>protected boolean isIdentityProcessor()
FluxProcessorFluxProcessor<T, T>isIdentityProcessor in class FluxProcessor<T,T>FluxProcessor<T, T>public void subscribe(CoreSubscriber<? super T> actual)
FluxPublisher.subscribe(Subscriber) that will bypass
Hooks.onLastOperator(Function) pointcut.
In addition to behave as expected by Publisher.subscribe(Subscriber)
in a controlled manner, it supports direct subscribe-time Context passing.
subscribe in interface CorePublisher<T>subscribe in class Flux<T>actual - the Subscriber interested into the published sequenceFlux.subscribe(Subscriber)public Stream<? extends Scannable> inners()
ScannableStream of referenced inners (flatmap, multicast etc)public boolean isTerminated()
FluxProcessorisTerminated in class FluxProcessor<T,T>public long downstreamCount()
FluxProcessorSubscriber or -1 if untracked.downstreamCount in class FluxProcessor<T,T>Subscriber or -1 if untrackedpublic boolean add(reactor.core.publisher.SinkManyBestEffort.DirectInner<T> s)
SinkManyBestEffort.DirectInner to this publisher.s - the new SinkManyBestEffort.DirectInner to addtrue if the inner could be added, false if the publisher cannot accept new subscriberspublic void remove(reactor.core.publisher.SinkManyBestEffort.DirectInner<T> s)
SinkManyBestEffort.DirectInner from this publisher. Does nothing if the inner is not currently managed
by the publisher.s - the SinkManyBestEffort.DirectInner to removepublic boolean hasDownstreams()
FluxProcessorSubscriber is actively subscribedhasDownstreams in class FluxProcessor<T,T>Subscriber is actively subscribed@Nullable public Throwable getError()
FluxProcessorgetError in class FluxProcessor<T,T>