Package rx.internal.operators
Class OperatorOnBackpressureBuffer.BufferSubscriber<T>
java.lang.Object
rx.Subscriber<T>
rx.internal.operators.OperatorOnBackpressureBuffer.BufferSubscriber<T>
- All Implemented Interfaces:
BackpressureDrainManager.BackpressureQueueCallback,Observer<T>,Subscription
- Enclosing class:
OperatorOnBackpressureBuffer<T>
static final class OperatorOnBackpressureBuffer.BufferSubscriber<T>
extends Subscriber<T>
implements BackpressureDrainManager.BackpressureQueueCallback
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicLongprivate final Subscriber<? super T> private final BackpressureDrainManagerprivate final NotificationLite<T> private final Action0private final BackpressureOverflow.Strategyprivate final ConcurrentLinkedQueue<Object> private final AtomicBoolean -
Constructor Summary
ConstructorsConstructorDescriptionBufferSubscriber(Subscriber<? super T> child, Long capacity, Action0 onOverflow, BackpressureOverflow.Strategy overflowStrategy) -
Method Summary
Modifier and TypeMethodDescriptionbooleanOverride this method to deliver an element to downstream.private booleanvoidOverride this method to deliver a normal or exceptional terminal event.protected Producermanager()voidNotifies the Observer that theObservablehas finished sending push-based notifications.voidNotifies the Observer that theObservablehas experienced an error condition.voidProvides the Observer with a new item to observe.voidonStart()This method is invoked when the Subscriber and Observable have been connected but the Observable has not yet begun to emit items or send notifications to the Subscriber.peek()Override this method to peek for the next element, null meaning no next element available now.poll()Override this method to poll (consume) the next element, null meaning no next element available now.Methods inherited from class rx.Subscriber
add, isUnsubscribed, request, setProducer, unsubscribe
-
Field Details
-
queue
-
capacity
-
child
-
saturated
-
manager
-
on
-
onOverflow
-
overflowStrategy
-
-
Constructor Details
-
BufferSubscriber
public BufferSubscriber(Subscriber<? super T> child, Long capacity, Action0 onOverflow, BackpressureOverflow.Strategy overflowStrategy)
-
-
Method Details
-
onStart
public void onStart()Description copied from class:SubscriberThis method is invoked when the Subscriber and Observable have been connected but the Observable has not yet begun to emit items or send notifications to the Subscriber. Override this method to add any useful initialization to your subscription, for instance to initiate backpressure.- Overrides:
onStartin classSubscriber<T>
-
onCompleted
public void onCompleted()Description copied from interface:ObserverNotifies the Observer that theObservablehas finished sending push-based notifications.The
Observablewill not call this method if it callsObserver.onError(java.lang.Throwable).- Specified by:
onCompletedin interfaceObserver<T>
-
onError
Description copied from interface:ObserverNotifies the Observer that theObservablehas experienced an error condition.If the
Observablecalls this method, it will not thereafter callObserver.onNext(T)orObserver.onCompleted(). -
onNext
Description copied from interface:ObserverProvides the Observer with a new item to observe.The
Observablemay call this method 0 or more times.The
Observablewill not call this method again after it calls eitherObserver.onCompleted()orObserver.onError(java.lang.Throwable). -
accept
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallbackOverride this method to deliver an element to downstream. The logic ensures that this happens only in the right conditions.- Specified by:
acceptin interfaceBackpressureDrainManager.BackpressureQueueCallback- Parameters:
value- the value to deliver, not null- Returns:
- true indicates that one should terminate the emission loop unconditionally and not deliver any further elements or terminal events.
-
complete
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallbackOverride this method to deliver a normal or exceptional terminal event.- Specified by:
completein interfaceBackpressureDrainManager.BackpressureQueueCallback- Parameters:
exception- if not null, contains the terminal exception
-
peek
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallbackOverride this method to peek for the next element, null meaning no next element available now.It will be called plain and while holding this object's monitor.
- Specified by:
peekin interfaceBackpressureDrainManager.BackpressureQueueCallback- Returns:
- the next element or null if no next element available
-
poll
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallbackOverride this method to poll (consume) the next element, null meaning no next element available now.- Specified by:
pollin interfaceBackpressureDrainManager.BackpressureQueueCallback- Returns:
- the next element or null if no next element available
-
assertCapacity
private boolean assertCapacity() -
manager
-