Package rx.internal.producers
Class SingleProducer<T>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicBoolean
-
- rx.internal.producers.SingleProducer<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
java.io.Serializable
,Producer
public final class SingleProducer<T> extends java.util.concurrent.atomic.AtomicBoolean implements Producer
A producer which emits a single value and completes the child on the first positive request.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description (package private) Subscriber<? super T>
child
The child subscriber.private static long
serialVersionUID
(package private) T
value
The value to be emitted.
-
Constructor Summary
Constructors Constructor Description SingleProducer(Subscriber<? super T> child, T value)
Constructs the producer with the given target child and value to be emitted.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
request(long n)
Request a certain maximum number of items from this Producer.-
Methods inherited from class java.util.concurrent.atomic.AtomicBoolean
compareAndExchange, compareAndExchangeAcquire, compareAndExchangeRelease, compareAndSet, get, getAcquire, getAndSet, getOpaque, getPlain, lazySet, set, setOpaque, setPlain, setRelease, toString, 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 subscriber.
-
value
final T value
The value to be emitted.
-
-
Constructor Detail
-
SingleProducer
public SingleProducer(Subscriber<? super T> child, T value)
Constructs the producer with the given target child and value to be emitted.- Parameters:
child
- the child subscriber, non-nullvalue
- the value to be emitted, may be 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);
-
-