Package rx.internal.operators
Class OperatorMulticast<T,R>
- java.lang.Object
-
- rx.Observable<T>
-
- rx.observables.ConnectableObservable<R>
-
- rx.internal.operators.OperatorMulticast<T,R>
-
- Type Parameters:
T
- the source value typeR
- the result value type
public final class OperatorMulticast<T,R> extends ConnectableObservable<R>
Shares a single subscription to a source through a Subject.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class rx.Observable
Observable.OnSubscribe<T>, Observable.Operator<R,T>, Observable.Transformer<T,R>
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.util.concurrent.atomic.AtomicReference<Subject<? super T,? extends R>>
connectedSubject
(package private) java.lang.Object
guard
(package private) Subscription
guardedSubscription
(package private) Observable<? extends T>
source
(package private) Func0<? extends Subject<? super T,? extends R>>
subjectFactory
(package private) Subscriber<T>
subscription
Guarded by guard.(package private) java.util.List<Subscriber<? super R>>
waitingForConnect
-
Constructor Summary
Constructors Modifier Constructor Description private
OperatorMulticast(java.lang.Object guard, java.util.concurrent.atomic.AtomicReference<Subject<? super T,? extends R>> connectedSubject, java.util.List<Subscriber<? super R>> waitingForConnect, Observable<? extends T> source, Func0<? extends Subject<? super T,? extends R>> subjectFactory)
OperatorMulticast(Observable<? extends T> source, Func0<? extends Subject<? super T,? extends R>> subjectFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
connect(Action1<? super Subscription> connection)
Instructs theConnectableObservable
to begin emitting the items from its underlyingObservable
to itsSubscriber
s.-
Methods inherited from class rx.observables.ConnectableObservable
autoConnect, autoConnect, autoConnect, connect, refCount
-
Methods inherited from class rx.Observable
all, amb, amb, amb, amb, amb, amb, amb, amb, amb, ambWith, asObservable, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, buffer, cache, cache, cacheWithInitialCapacity, cast, collect, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatest, combineLatestDelayError, compose, concat, concat, concat, concat, concat, concat, concat, concat, concat, concatDelayError, concatDelayError, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatEager, concatMap, concatMapDelayError, concatMapEager, concatMapEager, concatMapEager, concatMapIterable, concatWith, contains, count, countLong, create, create, create, debounce, debounce, debounce, defaultIfEmpty, defer, delay, delay, delay, delay, delaySubscription, delaySubscription, delaySubscription, delaySubscription, dematerialize, distinct, distinct, distinctUntilChanged, distinctUntilChanged, distinctUntilChanged, doAfterTerminate, doOnCompleted, doOnEach, doOnEach, doOnError, doOnNext, doOnRequest, doOnSubscribe, doOnTerminate, doOnUnsubscribe, elementAt, elementAtOrDefault, empty, error, exists, extend, filter, finallyDo, first, first, firstOrDefault, firstOrDefault, flatMap, flatMap, flatMap, flatMap, flatMap, flatMap, flatMapIterable, flatMapIterable, flatMapIterable, flatMapIterable, forEach, forEach, forEach, from, from, from, from, from, fromAsync, fromCallable, groupBy, groupBy, groupBy, groupJoin, ignoreElements, interval, interval, interval, interval, isEmpty, join, just, just, just, just, just, just, just, just, just, just, last, last, lastOrDefault, lastOrDefault, lift, limit, map, materialize, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, merge, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeDelayError, mergeWith, nest, never, observeOn, observeOn, observeOn, observeOn, ofType, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureBuffer, onBackpressureDrop, onBackpressureDrop, onBackpressureLatest, onErrorResumeNext, onErrorResumeNext, onErrorReturn, onExceptionResumeNext, onTerminateDetach, publish, publish, range, range, rebatchRequests, reduce, reduce, repeat, repeat, repeat, repeat, repeatWhen, repeatWhen, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, replay, retry, retry, retry, retryWhen, retryWhen, sample, sample, sample, scan, scan, sequenceEqual, sequenceEqual, serialize, share, single, single, singleOrDefault, singleOrDefault, skip, skip, skip, skipLast, skipLast, skipLast, skipUntil, skipWhile, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, subscribe, subscribe, subscribe, subscribe, subscribe, subscribe, subscribeOn, switchIfEmpty, switchMap, switchMapDelayError, switchOnNext, switchOnNextDelayError, take, take, take, takeFirst, takeLast, takeLast, takeLast, takeLast, takeLast, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeLastBuffer, takeUntil, takeUntil, takeWhile, throttleFirst, throttleFirst, throttleLast, throttleLast, throttleWithTimeout, throttleWithTimeout, timeInterval, timeInterval, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timeout, timer, timer, timer, timer, timestamp, timestamp, toBlocking, toCompletable, toList, toMap, toMap, toMap, toMultimap, toMultimap, toMultimap, toMultimap, toSingle, toSortedList, toSortedList, toSortedList, toSortedList, unsafeSubscribe, unsubscribeOn, using, using, window, window, window, window, window, window, window, window, window, window, window, window, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, withLatestFrom, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zip, zipWith, zipWith
-
-
-
-
Field Detail
-
source
final Observable<? extends T> source
-
guard
final java.lang.Object guard
-
connectedSubject
final java.util.concurrent.atomic.AtomicReference<Subject<? super T,? extends R>> connectedSubject
-
waitingForConnect
final java.util.List<Subscriber<? super R>> waitingForConnect
-
subscription
Subscriber<T> subscription
Guarded by guard.
-
guardedSubscription
Subscription guardedSubscription
-
-
Constructor Detail
-
OperatorMulticast
public OperatorMulticast(Observable<? extends T> source, Func0<? extends Subject<? super T,? extends R>> subjectFactory)
-
OperatorMulticast
private OperatorMulticast(java.lang.Object guard, java.util.concurrent.atomic.AtomicReference<Subject<? super T,? extends R>> connectedSubject, java.util.List<Subscriber<? super R>> waitingForConnect, Observable<? extends T> source, Func0<? extends Subject<? super T,? extends R>> subjectFactory)
-
-
Method Detail
-
connect
public void connect(Action1<? super Subscription> connection)
Description copied from class:ConnectableObservable
Instructs theConnectableObservable
to begin emitting the items from its underlyingObservable
to itsSubscriber
s.- Specified by:
connect
in classConnectableObservable<R>
- Parameters:
connection
- the action that receives the connection subscription before the subscription to source happens allowing the caller to synchronously disconnect a synchronous source- See Also:
- ReactiveX documentation: Connect
-
-