Package rx.internal.operators
Class OnSubscribeRange.RangeProducer
java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
rx.internal.operators.OnSubscribeRange.RangeProducer
- All Implemented Interfaces:
Serializable,Producer
- Enclosing class:
OnSubscribeRange
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Subscriber<? super Integer> private longprivate final intprivate static final long -
Constructor Summary
ConstructorsConstructorDescriptionRangeProducer(Subscriber<? super Integer> childSubscriber, int startIndex, int endIndex) -
Method Summary
Modifier and TypeMethodDescription(package private) voidfastpath()Emits all remaining values without decrementing the requested amount.voidrequest(long requestedAmount) Request a certain maximum number of items from this Producer.(package private) voidslowpath(long requestedAmount) Emits as many values as requested or remaining from the range, whichever is smaller.Methods inherited from class java.util.concurrent.atomic.AtomicLong
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, weakCompareAndSetVolatileMethods inherited from class java.lang.Number
byteValue, shortValue
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
childSubscriber
-
endOfRange
private final int endOfRange -
currentIndex
private long currentIndex
-
-
Constructor Details
-
RangeProducer
RangeProducer(Subscriber<? super Integer> childSubscriber, int startIndex, int endIndex)
-
-
Method Details
-
request
public void request(long requestedAmount) 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);
-
slowpath
void slowpath(long requestedAmount) Emits as many values as requested or remaining from the range, whichever is smaller. -
fastpath
void fastpath()Emits all remaining values without decrementing the requested amount.
-