All Downloads are FREE. Search and download functionalities are using the official Maven repository.

au.gov.amsa.ais.router.Router Maven / Gradle / Ivy

There is a newer version: 0.6.19
Show newest version
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