
au.gov.amsa.ais.router.Router Maven / Gradle / Ivy
package au.gov.amsa.ais.router;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import au.gov.amsa.ais.router.model.Port;
import rx.Observable;
import rx.Subscriber;
import rx.schedulers.Schedulers;
public class Router {
private static final Logger log = LoggerFactory.getLogger(Router.class);
public static Subscriber start(Port... ports) {
Subscriber subscriber = createSubscriber();
Observable //
.from(ports) //
.flatMap(port -> Observable //
.just(port) //
.doOnNext(p -> p.start()) //
.subscribeOn(Schedulers.io()))
.subscribe(subscriber);
return subscriber;
}
private static Subscriber createSubscriber() {
return new Subscriber() {
@Override
public void onCompleted() {
log.info("all ports stopped");
}
@Override
public void onError(Throwable e) {
log.error(e.getMessage(), e);
}
@Override
public void onNext(Port t) {
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy