Package rx
Interface Producer
-
- All Known Implementing Classes:
AsyncOnSubscribe.AsyncOuterManager
,BackpressureDrainManager
,CachedObservable.ReplayProducer
,DeferredScalarSubscriber.InnerProducer
,OnSubscribeCombineLatest.LatestCoordinator
,OnSubscribeConcatMap.ConcatMapInnerScalarProducer
,OnSubscribeDetach.DetachProducer
,OnSubscribeDetach.TerminatedProducer
,OnSubscribeFromArray.FromArrayProducer
,OnSubscribeFromAsync.BaseAsyncEmitter
,OnSubscribeFromAsync.BufferAsyncEmitter
,OnSubscribeFromAsync.DropAsyncEmitter
,OnSubscribeFromAsync.ErrorAsyncEmitter
,OnSubscribeFromAsync.LatestAsyncEmitter
,OnSubscribeFromAsync.NoneAsyncEmitter
,OnSubscribeFromAsync.NoOverflowBaseAsyncEmitter
,OnSubscribeFromIterable.IterableProducer
,OnSubscribePublishMulticast.PublishProducer
,OnSubscribeRange.RangeProducer
,OperatorBufferWithSize.BufferOverlap.BufferOverlapProducer
,OperatorBufferWithSize.BufferSkip.BufferSkipProducer
,OperatorEagerConcatMap.EagerOuterProducer
,OperatorElementAt.InnerProducer
,OperatorGroupBy.GroupByProducer
,OperatorGroupBy.State
,OperatorMerge.MergeProducer
,OperatorOnBackpressureLatest.LatestEmitter
,OperatorPublish.InnerProducer
,OperatorReplay.InnerProducer
,OperatorScan.InitialProducer
,OperatorWindowWithSize.WindowOverlap.WindowOverlapProducer
,OperatorWindowWithSize.WindowSkip.WindowSkipProducer
,OperatorZip.ZipProducer
,ProducerArbiter
,ProducerObserverArbiter
,QueuedProducer
,QueuedValueProducer
,ReplaySubject.ReplayProducer
,ScalarSynchronousObservable.ScalarAsyncProducer
,ScalarSynchronousObservable.WeakSingleProducer
,SingleDelayedProducer
,SingleProducer
,SyncOnSubscribe.SubscriptionProducer
,UnicastSubject.State
public interface Producer
Interface that establishes a request-channel between an Observable and a Subscriber and allows the Subscriber to request a certain amount of items from the Observable (otherwise known as backpressure).The request amount only affects calls to
Observer.onNext(Object)
; onError and onCompleted may appear without requests.However, backpressure is somewhat optional in RxJava 1.x and Subscribers may not receive a Producer via their
Subscriber.setProducer(Producer)
method and will run in unbounded mode. Depending on the chain of operators, this can lead toMissingBackpressureException
.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
request(long n)
Request a certain maximum number of items from this Producer.
-
-
-
Method Detail
-
request
void request(long n)
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);
- Parameters:
n
- the maximum number of items you want this Producer to produce, orLong.MAX_VALUE
if you want the Producer to produce items at its own pace- Throws:
java.lang.IllegalArgumentException
- if the request amount is negative
-
-