本文整理匯總了Java中rx.subjects.ReplaySubject.create方法的典型用法代碼示例。如果您正苦於以下問題:Java ReplaySubject.create方法的具體用法?Java ReplaySubject.create怎麽用?Java ReplaySubject.create使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rx.subjects.ReplaySubject
的用法示例。
在下文中一共展示了ReplaySubject.create方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: forceFallbackCommand
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
protected HystrixObservable<Response> forceFallbackCommand(Invocation invocation) {
return new HystrixObservable<Response>() {
@Override
public Observable<Response> observe() {
ReplaySubject<Response> subject = ReplaySubject.create();
final Subscription sourceSubscription = toObservable().subscribe(subject);
return subject.doOnUnsubscribe(sourceSubscription::unsubscribe);
}
@Override
public Observable<Response> toObservable() {
return Observable.create(f -> {
try {
f.onNext(FallbackPolicyManager.getFallbackResponse(handler.groupname, invocation));
} catch (Exception e) {
f.onError(e);
}
});
}
};
}
示例2: replaySubject
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
void replaySubject(){
ReplaySubject<Integer> replaySub = ReplaySubject.create();
replaySub.onNext(1);
replaySub.onNext(2);
Subscription subscription = replaySub.doOnSubscribe(new Action0() {
@Override
public void call() {
Log.i(TAG, "Observer subscribed to ReplaySubject");
}
}).doOnUnsubscribe(new Action0() {
@Override
public void call() {
Log.i(TAG, "Observer unsubscribed to ReplaySubject ");
}
}).subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
Log.i(TAG, "New Event received from ReplaySubject: " + integer);
}
});
replaySub.onNext(3);
replaySub.onNext(4);
subscription.unsubscribe();
replaySub.onNext(5);
replaySub.onCompleted();
}
示例3: getAdIdEnabledObservable
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public Observable<Boolean> getAdIdEnabledObservable() {
// Observable that emits Google Tracking Enabled
if (adIdEnabledSubscription == null || adIdEnabledSubscription.isUnsubscribed()) {
adIdEnabledSubject = ReplaySubject.create();
adIdEnabledSubscription = Observable
.concat(getAdIdEnabledFromMemoryObservable(),
getAdIdEnabledFromGoogleObservable())
.first(entity -> entity != null)
// lets retry if something goes wrong!
.retry(2)
.subscribe(adIdEnabledSubject);
}
return adIdEnabledSubject.asObservable();
}
示例4: testObserveAuth
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Test
public void testObserveAuth() throws Exception {
Observable<Boolean> isAuthenticated =
observeAuth(firebaseAuth)
.map(new Func1<FirebaseUser, Boolean>() {
@Override
public Boolean call(FirebaseUser user) {
return user != null;
}
});
ReplaySubject<Boolean> userState = ReplaySubject.create();
isAuthenticated.subscribe(userState);
await(authAnonymously(firebaseAuth));
firebaseAuth.signOut();
List<Boolean> observedState = await(userState.take(3).toList());
assertThat(observedState, contains(false, true, false));
}
示例5: loadCharacter
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public Observable<CharactersResponse> loadCharacter(String query,
String privateKey,
String publicKey,
long timestamp) {
if (characterSubscription == null || characterSubscription.isUnsubscribed()) {
characterSubject = ReplaySubject.create();
// generate hash using timestamp and API keys
String hash = HashGenerator.generate(timestamp, privateKey, publicKey);
characterSubscription = api.getCharacters(query, publicKey, hash, timestamp)
.subscribeOn(scheduler.backgroundThread())
.subscribe(characterSubject);
}
return characterSubject.asObservable();
}
示例6: getAdIdObservable
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public Observable<String> getAdIdObservable() {
// Observable that emits Google Advertising adIdSubscription
if (adIdSubscription == null || adIdSubscription.isUnsubscribed()) {
adIdSubject = ReplaySubject.create();
adIdSubscription = Observable
.concat(getAdIdFromMemoryObservable(),
getAdIdFromGoogleObservable())
.first(entity -> entity != null)
// lets retry if something goes wrong!
.retry(2)
.subscribe(adIdSubject);
}
return adIdSubject.asObservable();
}
示例7: toObservable
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
/**
* Creates an Observable stream from this queue. There should only ever be one subscriber to
* this method. Calling this method twice will complete any previously opened observable
* (leaving unprocessed elements in the queue).
* @return An observable containing the contents of the queue in order
*/
public Observable<T> toObservable() {
synchronized (mLock) {
if (mSubject != null) {
mSubject.onCompleted();
}
if (mQueue.isEmpty()) {
mSubject = ReplaySubject.create();
} else {
mSubject = ReplaySubject.create(mQueue.size());
for (T data : mQueue) {
mSubject.onNext(data);
}
}
}
return mSubject.map(item -> {
mQueue.remove();
return item;
}).asObservable();
}
示例8: replaySubject
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
public static void replaySubject() {
ReplaySubject<Integer> subject = ReplaySubject.create();
subject.onNext(5);
Action1<Integer> action1 = integer -> Log.i("From action1", String.valueOf(integer));
Subscription subscription1 = subject.subscribe(action1);
subject.onNext(10);
Action1<Integer> action2 = integer -> Log.i("From action2", String.valueOf(integer));
Subscription subscription2 = subject.subscribe(action2);
subject.onNext(20);
subscription1.unsubscribe();
subject.onNext(40);
subscription2.unsubscribe();
subject.onNext(80);
}
示例9: call
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public Observable<T> call(final Observable<T> observable) {
final ReplaySubject<Notification<T>>
subject = ReplaySubject.create();
final Subscription subscription = observable.materialize().subscribe(subject);
return view
.switchMap(new Func1<Boolean, Observable<Notification<T>>>() {
@Override
public Observable<Notification<T>> call(final Boolean flag) {
if (flag) {
return subject;
} else {
return Observable.empty();
}
}
})
.doOnUnsubscribe(new Action0() {
@Override
public void call() {
subscription.unsubscribe();
}
})
.dematerialize();
}
示例10: zugSuchen
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public final void zugSuchen(Stellung stellung, Observer<Zug> subject) {
Collection<Zug> zuege = spielregeln.liefereGueltigeZuege(stellung);
if (zuege.size() > 0) {
ReplaySubject<BewerteterZug> suchErgebnisse = ReplaySubject.create();
aktuelleSuchErgebnisse = suchErgebnisse;
ErgebnisMelden melder = new ErgebnisMelden(subject, zuege.size());
suchErgebnisse.subscribe(melder);
for (Zug zug : zuege) {
EinzelnenZugUntersuchen zugUntersuchen = new EinzelnenZugUntersuchen(stellung, zug, suchErgebnisse);
suchErgebnisse.subscribe(zugUntersuchen);
executorService.execute(zugUntersuchen);
}
} else {
subject.onCompleted();
}
}
示例11: getCityNames
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
private Observable<List<String>> getCityNames() {
if (cityNames == null) {
cityNames = ReplaySubject.create(1);
geoNamesClient.getCities()
.flatMap(cities -> Observable.from(cities.geonames))
.map(city -> {
String format = String.format("%s,%s", city.name, city.countrycode);
return format;
})
.toList()
.subscribe(cityNames);
}
Log.d(TAG, "Returning city names");
return cityNames.asObservable();
}
示例12: testServeListObservables
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Test
public void testServeListObservables(){
// setup
Observable<Integer> os1 = Observable.range(0, 101);
Observable<Integer> os2 = Observable.range(100, 101);
List<Observable<Integer>> toServe = new LinkedList<Observable<Integer>>();
toServe.add(os1);
toServe.add(os2);
ReplaySubject <List<Observable<Integer>>> subject = ReplaySubject.create();
subject.onNext(toServe);
// serve
PortSelectorWithinRange portSelector = new PortSelectorWithinRange(8000, 9000);
int serverPort = portSelector.acquirePort();
RemoteObservable.serveMany(serverPort, subject, Codecs.integer());
// connect
Observable<Integer> oc = RemoteObservable.connect("localhost", serverPort, Codecs.integer());
// assert
Observable.sumInteger(oc).toBlockingObservable().forEach(new Action1<Integer>(){
@Override
public void call(Integer t1) {
Assert.assertEquals(20200, t1.intValue()); // sum of number 0-200
}
});
}
示例13: saveBitmap
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
public ReplaySubject<String> saveBitmap(final Bitmap bitmap, final File folder, final String name) {
bitmapSubject = ReplaySubject.create();
try {
String path = FileUtil.savePhoto(bitmap, folder, name);
onSuccess(path);
} catch (IOException e) {
e.printStackTrace();
onFail(e);
}
return bitmapSubject;
}
示例14: initObservable
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
protected final void initObservable() {
subject = ReplaySubject.create();
subject.onBackpressureBuffer()
.observeOn(EventThread.getScheduler(observeThread))
.subscribeOn(EventThread.getScheduler(subscribeThread))
// .subscribe(new Observer<Object>() {
// @Override
// public void onCompleted() {
//
// }
//
// @Override
// public void onError(Throwable e) {
//
// }
//
// @Override
// public void onNext(Object event) {
// try {
// if (valid) {
// handleEvent(event);
// }
// } catch (InvocationTargetException e) {
// throwRuntimeException("Could not dispatch event: " + event.getClass() + " to subscriber " + SubscriberReplayEvent.this, e);
// }
// }
// });
.subscribe(event -> {
try {
if (valid) {
handleEvent(event);
}
} catch (InvocationTargetException e) {
throwRuntimeException("Could not dispatch event: " + event.getClass() + " to subscriber " + SubscriberReplayEvent.this, e);
}
});
}
示例15: login
import rx.subjects.ReplaySubject; //導入方法依賴的package包/類
@Override
public Observable<Response<LoginResponse>> login(String email, String password) {
if (loginSubscription == null || loginSubscription.isUnsubscribed()) {
loginSubject = ReplaySubject.create();
loginSubscription = api.login(email, password)
.subscribeOn(scheduler.backgroundThread())
.subscribe(loginSubject);
}
return loginSubject.asObservable();
}