Module methanol
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
- Direct Known Subclasses:
SubmittableSubscription
A subscription that emits items from a queue and completes downstream as soon as a sentinel value
is observed.
-
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractQueueSubscription
(Flow.Subscriber<? super T> downstream, Executor executor) protected
AbstractQueueSubscription
(Flow.Subscriber<? super T> downstream, Executor executor, Queue<T> queue) protected
AbstractQueueSubscription
(Flow.Subscriber<? super T> downstream, Executor executor, Queue<T> queue, T sentinel) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
abort
(boolean flowInterrupted) Releases resources held by this subscription.protected void
complete()
protected boolean
Returnstrue
if downstream is to be completed.protected @Nullable T
poll()
Returns the next item, ornull
if no items are available.protected void
protected void
submitAndComplete
(T lastItem) protected void
submitSilently
(T item) Methods inherited from class com.github.mizosoft.methanol.internal.flow.AbstractPollableSubscription
emit
Methods inherited from class com.github.mizosoft.methanol.internal.flow.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:AbstractPollableSubscription
Returns the next item, ornull
if no items are available.- Specified by:
poll
in classAbstractPollableSubscription<T>
-
isComplete
protected boolean isComplete()Description copied from class:AbstractPollableSubscription
Returnstrue
if downstream is to be completed. Implementation must ensuretrue
isn'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:
isComplete
in classAbstractPollableSubscription<T>
-
abort
protected void abort(boolean flowInterrupted) Description copied from class:AbstractSubscription
Releases resources held by this subscription.flowInterrupted
tells whether cancellation was due to flow interruption by downstream (e.g. callingcancel()
or throwing fromonNext
oronSubscribe
), or due to ending the normal flow of signals (onSubscribe -> onNext* -> (onError | onComplete)).- Overrides:
abort
in classAbstractSubscription<T>
-
complete
protected void complete()
-