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 AtomicLong
private final Subscriber
<? super T> private final BackpressureDrainManager
private final NotificationLite
<T> private final Action0
private final BackpressureOverflow.Strategy
private final ConcurrentLinkedQueue
<Object> private final AtomicBoolean
-
Constructor Summary
ConstructorsConstructorDescriptionBufferSubscriber
(Subscriber<? super T> child, Long capacity, Action0 onOverflow, BackpressureOverflow.Strategy overflowStrategy) -
Method Summary
Modifier and TypeMethodDescriptionboolean
Override this method to deliver an element to downstream.private boolean
void
Override this method to deliver a normal or exceptional terminal event.protected Producer
manager()
void
Notifies the Observer that theObservable
has finished sending push-based notifications.void
Notifies the Observer that theObservable
has experienced an error condition.void
Provides the Observer with a new item to observe.void
onStart()
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:Subscriber
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. Override this method to add any useful initialization to your subscription, for instance to initiate backpressure.- Overrides:
onStart
in classSubscriber<T>
-
onCompleted
public void onCompleted()Description copied from interface:Observer
Notifies the Observer that theObservable
has finished sending push-based notifications.The
Observable
will not call this method if it callsObserver.onError(java.lang.Throwable)
.- Specified by:
onCompleted
in interfaceObserver<T>
-
onError
Description copied from interface:Observer
Notifies the Observer that theObservable
has experienced an error condition.If the
Observable
calls this method, it will not thereafter callObserver.onNext(T)
orObserver.onCompleted()
. -
onNext
Description copied from interface:Observer
Provides the Observer with a new item to observe.The
Observable
may call this method 0 or more times.The
Observable
will not call this method again after it calls eitherObserver.onCompleted()
orObserver.onError(java.lang.Throwable)
. -
accept
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallback
Override this method to deliver an element to downstream. The logic ensures that this happens only in the right conditions.- Specified by:
accept
in 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.BackpressureQueueCallback
Override this method to deliver a normal or exceptional terminal event.- Specified by:
complete
in interfaceBackpressureDrainManager.BackpressureQueueCallback
- Parameters:
exception
- if not null, contains the terminal exception
-
peek
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallback
Override 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:
peek
in interfaceBackpressureDrainManager.BackpressureQueueCallback
- Returns:
- the next element or null if no next element available
-
poll
Description copied from interface:BackpressureDrainManager.BackpressureQueueCallback
Override this method to poll (consume) the next element, null meaning no next element available now.- Specified by:
poll
in interfaceBackpressureDrainManager.BackpressureQueueCallback
- Returns:
- the next element or null if no next element available
-
assertCapacity
private boolean assertCapacity() -
manager
-