package com.etiennelawlor.loop.bus;
import rx.Observable;
import rx.subjects.PublishSubject;
/**
* Created by etiennelawlor on 6/20/16.
*/
public class RxBus {
private static final PublishSubject<Object> bus = PublishSubject.create();
// private static final BehaviorSubject<Object> bus = BehaviorSubject.create();
// If multiple threads are going to emit events to this
// then it must be made thread-safe like this instead
// private final Subject<Object, Object> _bus = new SerializedSubject<>(PublishSubject.create());
public void send(Object o) {
bus.onNext(o);
}
public Observable<Object> toObserverable() {
return bus;
}
public boolean hasObservers() {
return bus.hasObservers();
}
public static RxBus getInstance() {
return new RxBus();
}
private RxBus() {
// No instances.
}
}