T
- the value typepublic final class QueuedProducer<T> extends AtomicLong implements Producer, Observer<T>
Constructor and Description |
---|
QueuedProducer(Subscriber<? super T> child)
Constructs an instance with the target child subscriber and an Spsc Linked (Atomic) Queue
as the queue implementation.
|
QueuedProducer(Subscriber<? super T> child,
Queue<Object> queue)
Constructs an instance with the target child subscriber and a custom queue implementation
|
Modifier and Type | Method and Description |
---|---|
boolean |
offer(T value)
Offers a value to this producer and tries to emit any queued values
if the child requests allow it.
|
void |
onCompleted()
Notifies the Observer that the
Observable has finished sending push-based notifications. |
void |
onError(Throwable e)
Notifies the Observer that the
Observable has experienced an error condition. |
void |
onNext(T value)
Provides the Observer with a new item to observe.
|
void |
request(long n)
Request a certain maximum number of items from this Producer.
|
accumulateAndGet, addAndGet, compareAndSet, decrementAndGet, doubleValue, floatValue, get, getAndAccumulate, getAndAdd, getAndDecrement, getAndIncrement, getAndSet, getAndUpdate, incrementAndGet, intValue, lazySet, longValue, set, toString, updateAndGet, weakCompareAndSet
byteValue, shortValue
public QueuedProducer(Subscriber<? super T> child)
child
- the target child subscriberpublic QueuedProducer(Subscriber<? super T> child, Queue<Object> queue)
child
- the target child subscriberqueue
- the queue to usepublic void request(long n)
Producer
Long.MAX_VALUE
to this method.
Requests are additive but if a sequence of requests totals more than Long.MAX_VALUE
then
Long.MAX_VALUE
requests will be actioned and the extras may be ignored. Arriving at
Long.MAX_VALUE
by addition of requests cannot be assumed to disable backpressure. For example,
the code below may result in Long.MAX_VALUE
requests being actioned only.
request(100); request(Long.MAX_VALUE-1);
public boolean offer(T value)
value
- the value to enqueue and attempt to drainpublic void onNext(T value)
Observer
The Observable
may call this method 0 or more times.
The Observable
will not call this method again after it calls either Observer.onCompleted()
or
Observer.onError(java.lang.Throwable)
.
public void onError(Throwable e)
Observer
Observable
has experienced an error condition.
If the Observable
calls this method, it will not thereafter call Observer.onNext(T)
or
Observer.onCompleted()
.
public void onCompleted()
Observer
Observable
has finished sending push-based notifications.
The Observable
will not call this method if it calls Observer.onError(java.lang.Throwable)
.
onCompleted
in interface Observer<T>
Copyright © 2017. All rights reserved.