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
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicLong
capacity
private Subscriber<? super T>
child
private BackpressureDrainManager
manager
private NotificationLite<T>
on
private Action0
onOverflow
private BackpressureOverflow.Strategy
overflowStrategy
private java.util.concurrent.ConcurrentLinkedQueue<java.lang.Object>
queue
private java.util.concurrent.atomic.AtomicBoolean
saturated
-
Constructor Summary
Constructors Constructor Description BufferSubscriber(Subscriber<? super T> child, java.lang.Long capacity, Action0 onOverflow, BackpressureOverflow.Strategy overflowStrategy)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
accept(java.lang.Object value)
Override this method to deliver an element to downstream.private boolean
assertCapacity()
void
complete(java.lang.Throwable exception)
Override this method to deliver a normal or exceptional terminal event.protected Producer
manager()
void
onCompleted()
Notifies the Observer that theObservable
has finished sending push-based notifications.void
onError(java.lang.Throwable e)
Notifies the Observer that theObservable
has experienced an error condition.void
onNext(T t)
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.java.lang.Object
peek()
Override this method to peek for the next element, null meaning no next element available now.java.lang.Object
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 Detail
-
queue
private final java.util.concurrent.ConcurrentLinkedQueue<java.lang.Object> queue
-
capacity
private final java.util.concurrent.atomic.AtomicLong capacity
-
child
private final Subscriber<? super T> child
-
saturated
private final java.util.concurrent.atomic.AtomicBoolean saturated
-
manager
private final BackpressureDrainManager manager
-
on
private final NotificationLite<T> on
-
onOverflow
private final Action0 onOverflow
-
overflowStrategy
private final BackpressureOverflow.Strategy overflowStrategy
-
-
Constructor Detail
-
BufferSubscriber
public BufferSubscriber(Subscriber<? super T> child, java.lang.Long capacity, Action0 onOverflow, BackpressureOverflow.Strategy overflowStrategy)
-
-
Method Detail
-
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
public void onError(java.lang.Throwable e)
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
public void onNext(T t)
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
public boolean accept(java.lang.Object value)
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
public void complete(java.lang.Throwable exception)
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
public java.lang.Object 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
public java.lang.Object 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
protected Producer manager()
-
-