se.fortnox.reactivewizard.util.FluxRxConverter Maven / Gradle / Ivy
package se.fortnox.reactivewizard.util;
import org.reactivestreams.Subscription;
import reactor.core.publisher.Flux;
import rx.Observable;
public class FluxRxConverter {
public static Flux observableToFlux(Observable result) {
return Flux.from(subscriber -> result.subscribe(new FluxRxSubscriber(subscriber)));
}
private static class FluxRxSubscriber extends rx.Subscriber {
private final org.reactivestreams.Subscriber super T> subscriber;
public FluxRxSubscriber(org.reactivestreams.Subscriber super T> subscriber) {
this.subscriber = subscriber;
}
@Override
public void onStart() {
subscriber.onSubscribe(new Subscription() {
@Override
public void request(long count) {
FluxRxSubscriber.this.request(count);
}
@Override
public void cancel() {
FluxRxSubscriber.this.unsubscribe();
}
});
}
@Override
public void onCompleted() {
subscriber.onComplete();
}
@Override
public void onError(Throwable error) {
subscriber.onError(error);
}
@Override
public void onNext(T item) {
subscriber.onNext(item);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy