Package rx.internal.producers
Class SingleDelayedProducer<T>
- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.AtomicInteger
-
- rx.internal.producers.SingleDelayedProducer<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
java.io.Serializable
,Producer
public final class SingleDelayedProducer<T> extends java.util.concurrent.atomic.AtomicInteger implements Producer
Producer that emits a single value and completes the child subscriber once that single value is set on it and the child requested items (maybe both asynchronously).- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Subscriber<? super T>
child
The child to emit the value and completion once possible.(package private) static int
HAS_REQUEST_HAS_VALUE
(package private) static int
HAS_REQUEST_NO_VALUE
(package private) static int
NO_REQUEST_HAS_VALUE
(package private) static int
NO_REQUEST_NO_VALUE
private static long
serialVersionUID
(package private) T
value
The value to emit.
-
Constructor Summary
Constructors Constructor Description SingleDelayedProducer(Subscriber<? super T> child)
Constructor, wraps the target child subscriber.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <T> void
emit(Subscriber<? super T> c, T v)
Emits the given value to the child subscriber and completes it and checks for unsubscriptions eagerly.void
request(long n)
Request a certain maximum number of items from this Producer.void
setValue(T value)
-
Methods inherited from class java.util.concurrent.atomic.AtomicInteger
accumulateAndGet, addAndGet, compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, decrementAndGet, doubleValue, floatValue, get, getAcquire, getAndAccumulate, getAndAdd, getAndDecrement, getAndIncrement, getAndSet, getAndUpdate, getOpaque, getPlain, incrementAndGet, intValue, lazySet, longValue, set, setOpaque, setPlain, setRelease, toString, updateAndGet, weakCompareAndSet, weakCompareAndSetAcquire, weakCompareAndSetPlain, weakCompareAndSetRelease, weakCompareAndSetVolatile
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
child
final Subscriber<? super T> child
The child to emit the value and completion once possible.
-
value
T value
The value to emit.
-
NO_REQUEST_NO_VALUE
static final int NO_REQUEST_NO_VALUE
- See Also:
- Constant Field Values
-
NO_REQUEST_HAS_VALUE
static final int NO_REQUEST_HAS_VALUE
- See Also:
- Constant Field Values
-
HAS_REQUEST_NO_VALUE
static final int HAS_REQUEST_NO_VALUE
- See Also:
- Constant Field Values
-
HAS_REQUEST_HAS_VALUE
static final int HAS_REQUEST_HAS_VALUE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SingleDelayedProducer
public SingleDelayedProducer(Subscriber<? super T> child)
Constructor, wraps the target child subscriber.- Parameters:
child
- the child subscriber, not null
-
-
Method Detail
-
request
public void request(long n)
Description copied from interface:Producer
Request a certain maximum number of items from this Producer. This is a way of requesting backpressure. To disable backpressure, passLong.MAX_VALUE
to this method.Requests are additive but if a sequence of requests totals more than
Long.MAX_VALUE
thenLong.MAX_VALUE
requests will be actioned and the extras may be ignored. Arriving atLong.MAX_VALUE
by addition of requests cannot be assumed to disable backpressure. For example, the code below may result inLong.MAX_VALUE
requests being actioned only.request(100); request(Long.MAX_VALUE-1);
-
setValue
public void setValue(T value)
-
emit
private static <T> void emit(Subscriber<? super T> c, T v)
Emits the given value to the child subscriber and completes it and checks for unsubscriptions eagerly.- Parameters:
c
-v
-
-
-