Package rx.internal.operators
Class OperatorPublish<T>
- java.lang.Object
-
- rx.Observable<T>
-
- rx.observables.ConnectableObservable<T>
-
- rx.internal.operators.OperatorPublish<T>
-
- Type Parameters:
T
- the value type
public final class OperatorPublish<T> extends ConnectableObservable<T>
A connectable observable which shares an underlying source and dispatches source values to subscribers in a backpressure-aware manner.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
OperatorPublish.InnerProducer<T>
A Producer and Subscription that manages the request and unsubscription state of a child subscriber in thread-safe manner.(package private) static class
OperatorPublish.PublishSubscriber<T>
-
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<OperatorPublish.PublishSubscriber<T>>
current
Holds the current subscriber that is, will be or just was subscribed to the source observable.(package private) Observable<? extends T>
source
The source observable.
-
Constructor Summary
Constructors Modifier Constructor Description private
OperatorPublish(Observable.OnSubscribe<T> onSubscribe, Observable<? extends T> source, java.util.concurrent.atomic.AtomicReference<OperatorPublish.PublishSubscriber<T>> current)
-
Method Summary
All Methods Static 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.static <T> ConnectableObservable<T>
create(Observable<? extends T> source)
Creates a OperatorPublish instance to publish values of the given source observable.static <T,R>
Observable<R>create(Observable<? extends T> source, Func1<? super Observable<T>,? extends Observable<R>> selector)
static <T,R>
Observable<R>create(Observable<? extends T> source, Func1<? super Observable<T>,? extends Observable<R>> selector, boolean delayError)
-
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
The source observable.
-
current
final java.util.concurrent.atomic.AtomicReference<OperatorPublish.PublishSubscriber<T>> current
Holds the current subscriber that is, will be or just was subscribed to the source observable.
-
-
Constructor Detail
-
OperatorPublish
private OperatorPublish(Observable.OnSubscribe<T> onSubscribe, Observable<? extends T> source, java.util.concurrent.atomic.AtomicReference<OperatorPublish.PublishSubscriber<T>> current)
-
-
Method Detail
-
create
public static <T> ConnectableObservable<T> create(Observable<? extends T> source)
Creates a OperatorPublish instance to publish values of the given source observable.- Type Parameters:
T
- the value type- Parameters:
source
- the source observable- Returns:
- the connectable observable
-
create
public static <T,R> Observable<R> create(Observable<? extends T> source, Func1<? super Observable<T>,? extends Observable<R>> selector)
-
create
public static <T,R> Observable<R> create(Observable<? extends T> source, Func1<? super Observable<T>,? extends Observable<R>> selector, boolean delayError)
-
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<T>
- 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
-
-