Package rx.internal.operators
Class OnSubscribeRefCount<T>
- java.lang.Object
-
- rx.internal.operators.OnSubscribeRefCount<T>
-
- Type Parameters:
T
- the value type
- All Implemented Interfaces:
Action
,Action1<Subscriber<? super T>>
,Function
,Observable.OnSubscribe<T>
public final class OnSubscribeRefCount<T> extends java.lang.Object implements Observable.OnSubscribe<T>
Returns an observable sequence that stays connected to the source as long as there is at least one subscription to the observable sequence.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) CompositeSubscription
baseSubscription
(package private) java.util.concurrent.locks.ReentrantLock
lock
Use this lock for every subscription and disconnect action.private ConnectableObservable<? extends T>
source
(package private) java.util.concurrent.atomic.AtomicInteger
subscriptionCount
-
Constructor Summary
Constructors Constructor Description OnSubscribeRefCount(ConnectableObservable<? extends T> source)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
call(Subscriber<? super T> subscriber)
private Subscription
disconnect(CompositeSubscription current)
(package private) void
doSubscribe(Subscriber<? super T> subscriber, CompositeSubscription currentBase)
private Action1<Subscription>
onSubscribe(Subscriber<? super T> subscriber, java.util.concurrent.atomic.AtomicBoolean writeLocked)
-
-
-
Field Detail
-
source
private final ConnectableObservable<? extends T> source
-
baseSubscription
volatile CompositeSubscription baseSubscription
-
subscriptionCount
final java.util.concurrent.atomic.AtomicInteger subscriptionCount
-
lock
final java.util.concurrent.locks.ReentrantLock lock
Use this lock for every subscription and disconnect action.
-
-
Constructor Detail
-
OnSubscribeRefCount
public OnSubscribeRefCount(ConnectableObservable<? extends T> source)
Constructor.- Parameters:
source
- observable to apply ref count to
-
-
Method Detail
-
call
public void call(Subscriber<? super T> subscriber)
-
onSubscribe
private Action1<Subscription> onSubscribe(Subscriber<? super T> subscriber, java.util.concurrent.atomic.AtomicBoolean writeLocked)
-
doSubscribe
void doSubscribe(Subscriber<? super T> subscriber, CompositeSubscription currentBase)
-
disconnect
private Subscription disconnect(CompositeSubscription current)
-
-