private static <Out> Observable<Notification<Out>> applyBackpressure( Observable<Notification<Out>> o, final BackpressureStrategy backpressureStrategy) { if (backpressureStrategy == BackpressureStrategy.BUFFER) return o.onBackpressureBuffer(); else if (backpressureStrategy == BackpressureStrategy.DROP) return o.onBackpressureDrop(); else if (backpressureStrategy == BackpressureStrategy.LATEST) return o.onBackpressureLatest(); else throw new IllegalArgumentException( "backpressure strategy not supported: " + backpressureStrategy); }
Preference(SharedPreferences preferences, final String key, T defValue, Proxy<T> proxy, Observable<String> keyChanges) { this.preferences = preferences; this.key = key; this.defValue = defValue; this.proxy = proxy; this.values = keyChanges .filter(new Func1<String, Boolean>() { @Override public Boolean call(String changedKey) { return key.equals(changedKey); } }) .startWith("") // to trigger initial load .onBackpressureLatest() .map(new Func1<String, T>() { @Override public T call(String ignored) { return asValue(); } }); }
private static <Out> Observable<Notification<Out>> applyBackpressure( Observable<Notification<Out>> o, final BackpressureStrategy backpressureStrategy) { if (backpressureStrategy == BackpressureStrategy.BUFFER) return o.onBackpressureBuffer(); else if (backpressureStrategy == BackpressureStrategy.DROP) return o.onBackpressureDrop(); else if (backpressureStrategy == BackpressureStrategy.LATEST) return o.onBackpressureLatest(); else throw new IllegalArgumentException( "backpressure strategy not supported: " + backpressureStrategy); }
public void toSwingViewEnabledPropertyOf(JComponent target) { source.onBackpressureLatest() .observeOn(SwingScheduler.getInstance()) .lift(preserveFullStackTrace()) .subscribe(target::setEnabled); } }
public void toSwingViewText(JTextComponent target) { source.onBackpressureLatest() .observeOn(SwingScheduler.getInstance()) .lift(preserveFullStackTrace()) .subscribe(target::setText); }
public void toSwingViewLabel(JLabel target) { source.onBackpressureLatest() .observeOn(SwingScheduler.getInstance()) .lift(preserveFullStackTrace()) .subscribe(target::setText); } }
public static void main(String[] args) { System.out.println(Observable.interval(1, 1, TimeUnit.MILLISECONDS) .take(2000) .share() .onBackpressureLatest() .subscribeOn(Schedulers.io()) .observeOn(Schedulers.computation(), 16) .doOnNext(System.out::println) .toList() .toBlocking() .last().size()); } }
.observeOn(mainThread()) .zipWith(tickObservable, (model, tick) -> model) .onBackpressureLatest() .flatMap( model ->
.map(MapSomethingToExecuteAsBlocking.newInstance(this)) // each change triggers executeAsBlocking .startWith(Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this))) // start stream with first query result .onBackpressureLatest(); } else { observable = Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this));
.map(MapSomethingToExecuteAsBlocking.newInstance(this)) // each change triggers executeAsBlocking .startWith(Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this))) // start stream with first query result .onBackpressureLatest(); } else { observable = Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this));
return o.onBackpressureDrop(); else if (backpressureStrategy == BackpressureStrategy.LATEST) return o.onBackpressureLatest(); else throw new RuntimeException("unrecognized backpressureStrategy " + backpressureStrategy);
.map(MapSomethingToExecuteAsBlocking.newInstance(this)) // each change triggers executeAsBlocking .startWith(Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this))) // start stream with first query result .onBackpressureLatest(); } else { observable = Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this));
.map(MapSomethingToExecuteAsBlocking.newInstance(this)) // each change triggers executeAsBlocking .startWith(Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this))) // start stream with first query result .onBackpressureLatest(); } else { observable = Observable.create(OnSubscribeExecuteAsBlocking.newInstance(this));