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:
java.util.concurrent.Flow.Subscription
public class AbstractQueueSubscription<T> extends AbstractPollableSubscription<T>
A subscription that emits items from a queue and completes downstream as soon as a sentinel value is observed.
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractQueueSubscription(java.util.concurrent.Flow.Subscriber<? super T> downstream, java.util.concurrent.Executor executor)protectedAbstractQueueSubscription(java.util.concurrent.Flow.Subscriber<? super T> downstream, java.util.concurrent.Executor executor, java.util.Queue<T> queue)protectedAbstractQueueSubscription(java.util.concurrent.Flow.Subscriber<? super T> downstream, java.util.concurrent.Executor executor, java.util.Queue<T> queue, T sentinel)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidabort(boolean flowInterrupted)Releases resources held by this subscription.protected voidcomplete()protected booleanisComplete()Returnstrueif downstream is to be completed.protected @Nullable Tpoll()Returns the next item, ornullif no items are available.protected voidsubmit(T item)protected voidsubmitAndComplete(T lastItem)protected voidsubmitSilently(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 Detail
-
AbstractQueueSubscription
protected AbstractQueueSubscription(java.util.concurrent.Flow.Subscriber<? super T> downstream, java.util.concurrent.Executor executor)
-
AbstractQueueSubscription
protected AbstractQueueSubscription(java.util.concurrent.Flow.Subscriber<? super T> downstream, java.util.concurrent.Executor executor, java.util.Queue<T> queue)
-
-
Method Detail
-
submit
protected void submit(T item)
-
submitSilently
protected void submitSilently(T item)
-
submitAndComplete
protected void submitAndComplete(T lastItem)
-
poll
protected @Nullable T 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()
-
-