
io.reactiverse.reactivecontexts.propagators.rxjava2.ContextPropagatorOnCompletableAssemblyAction Maven / Gradle / Ivy
package io.reactiverse.reactivecontexts.propagators.rxjava2;
import io.reactiverse.reactivecontexts.core.Context;
import io.reactiverse.reactivecontexts.core.ContextState;
import io.reactivex.Completable;
import io.reactivex.CompletableObserver;
import io.reactivex.functions.Function;
public class ContextPropagatorOnCompletableAssemblyAction implements Function {
@Override
public Completable apply(Completable t) throws Exception {
return new ContextPropagatorCompletable(t);
}
public class ContextPropagatorCompletable extends Completable {
private Completable source;
private ContextState context;
public ContextPropagatorCompletable(Completable t) {
this.source = t;
this.context = Context.capture();
}
@Override
protected void subscribeActual(CompletableObserver observer) {
ContextState previousContext = context.install();
try {
source.subscribe(observer);
}finally {
previousContext.restore();
}
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy