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>childThe child to emit the value and completion once possible.(package private) static intHAS_REQUEST_HAS_VALUE(package private) static intHAS_REQUEST_NO_VALUE(package private) static intNO_REQUEST_HAS_VALUE(package private) static intNO_REQUEST_NO_VALUEprivate static longserialVersionUID(package private) TvalueThe 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> voidemit(Subscriber<? super T> c, T v)Emits the given value to the child subscriber and completes it and checks for unsubscriptions eagerly.voidrequest(long n)Request a certain maximum number of items from this Producer.voidsetValue(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:ProducerRequest a certain maximum number of items from this Producer. This is a way of requesting backpressure. To disable backpressure, passLong.MAX_VALUEto this method.Requests are additive but if a sequence of requests totals more than
Long.MAX_VALUEthenLong.MAX_VALUErequests will be actioned and the extras may be ignored. Arriving atLong.MAX_VALUEby addition of requests cannot be assumed to disable backpressure. For example, the code below may result inLong.MAX_VALUErequests 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-
-
-