Class AbstractQueueSubscription<T>
java.lang.Object
com.github.mizosoft.methanol.internal.flow.AbstractSubscription<T>
com.github.mizosoft.methanol.internal.flow.AbstractPollableSubscription<T>
com.github.mizosoft.methanol.internal.flow.AbstractQueueSubscription<T>
- All Implemented Interfaces:
Flow.Subscription
A subscription that emits items from a queue and completes downstream as soon as a sentinel value
is observed.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractQueueSubscription(Flow.Subscriber<? super T> downstream, Executor executor) protectedAbstractQueueSubscription(Flow.Subscriber<? super T> downstream, Executor executor, Queue<T> queue) protectedAbstractQueueSubscription(Flow.Subscriber<? super T> downstream, Executor executor, Queue<T> queue, T sentinel) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidabort(boolean flowInterrupted) Releases resources held by this subscription.protected voidcomplete()protected booleanReturnstrueif downstream is to be completed.protected @Nullable Tpoll()Returns the next item, ornullif no items are available.protected voidprotected voidsubmitAndComplete(T lastItem) protected voidsubmitSilently(T item) Methods inherited from class AbstractPollableSubscription
emitMethods inherited from class AbstractSubscription
cancel, cancelOnComplete, cancelOnError, currentDemand, fireOrKeepAlive, fireOrKeepAliveOnError, fireOrKeepAliveOnNext, hasPendingErrors, isCancelled, request, submitOnNext
-
Constructor Details
-
AbstractQueueSubscription
-
AbstractQueueSubscription
protected AbstractQueueSubscription(Flow.Subscriber<? super T> downstream, Executor executor, Queue<T> queue) -
AbstractQueueSubscription
-
-
Method Details
-
submit
-
submitSilently
-
submitAndComplete
-
poll
Description copied from class:AbstractPollableSubscriptionReturns the next item, ornullif no items are available.- Specified by:
pollin classAbstractPollableSubscription<T>
-
isComplete
protected boolean isComplete()Description copied from class:AbstractPollableSubscriptionReturnstrueif downstream is to be completed. Implementation must ensuretrueisn't returned unless the subscription knows it won't produce any more items AND there aren't any present items expected to bepolled.- Specified by:
isCompletein classAbstractPollableSubscription<T>
-
abort
protected void abort(boolean flowInterrupted) Description copied from class:AbstractSubscriptionReleases resources held by this subscription.flowInterruptedtells whether cancellation was due to flow interruption by downstream (e.g. callingcancel()or throwing fromonNextoronSubscribe), or due to ending the normal flow of signals (onSubscribe -> onNext* -> (onError | onComplete)).- Overrides:
abortin classAbstractSubscription<T>
-
complete
protected void complete()
-