
com.github.davidmoten.rx.internal.operators.OnSubscribeCacheResetable Maven / Gradle / Ivy
package com.github.davidmoten.rx.internal.operators;
import java.util.concurrent.atomic.AtomicBoolean;
import rx.Observable;
import rx.Observable.OnSubscribe;
import rx.Subscriber;
public final class OnSubscribeCacheResetable implements OnSubscribe {
private final AtomicBoolean refresh = new AtomicBoolean(true);
private final Observable source;
private volatile Observable current;
public OnSubscribeCacheResetable(Observable source) {
this.source = source;
this.current = source;
}
@Override
public void call(Subscriber super T> subscriber) {
if (refresh.compareAndSet(true, false)) {
current = source.cache();
}
current.unsafeSubscribe(subscriber);
}
public void reset() {
refresh.set(true);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy