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 ProducerInterface 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 voidrequest(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_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);
- Parameters:
n- the maximum number of items you want this Producer to produce, orLong.MAX_VALUEif you want the Producer to produce items at its own pace- Throws:
java.lang.IllegalArgumentException- if the request amount is negative
-
-