T - the value type
public final class QueuedValueProducer<T> extends AtomicLongimplements Producer
| Constructor and Description |
|---|
QueuedValueProducer(Subscriber
Constructs an instance with the target child subscriber and an Spsc Linked (Atomic) Queue as the queue implementation.
|
QueuedValueProducer(Subscriber
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 queud values if the child requests allow it.
|
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, weakCompareAndSetbyteValue, shortValuepublic QueuedValueProducer(Subscriber<? super T> child)
child - the target child subscriber
public QueuedValueProducer(Subscriber<? super T> child, Queue <Object > queue)
child - the target child subscriber
queue - the queue to use
public 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 drain