package ren.solid.library.rx;
import io.reactivex.Observable;
import io.reactivex.subjects.PublishSubject;
import io.reactivex.subjects.Subject;
/**
* Created by _SOLID
* Date:2016/6/1
* Time:11:44
*/
public class RxBus {
private final Subject<Object> _bus;
private static class RxBusHolder {
private static final RxBus instance = new RxBus();
}
private RxBus() {
_bus = PublishSubject.create();
}
public static synchronized RxBus getInstance() {
return RxBusHolder.instance;
}
public void send(Object o) {
_bus.onNext(o);
}
public <T> Observable<T> toObservable(Class<T> eventType) {
return _bus.ofType(eventType);
}
}