@java.lang.Override @java.lang.SuppressWarnings("unchecked") public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { switch (methodId) { case METHODID_SAY_HELLO: com.salesforce.reactorgrpc.stub.ServerCalls.oneToOne((com.salesforce.servicelibs.reactivegrpc.HelloRequest) request, (io.grpc.stub.StreamObserver<com.salesforce.servicelibs.reactivegrpc.HelloResponse>) responseObserver, serviceImpl::sayHello); break; default: throw new java.lang.AssertionError(); } }
/** * Implements a unary -> unary call using {@link Mono} -> {@link Mono}. */ public static <TRequest, TResponse> void oneToOne( TRequest request, StreamObserver<TResponse> responseObserver, Function<Mono<TRequest>, Mono<TResponse>> delegate) { try { Mono<TRequest> rxRequest = Mono.just(request); Mono<TResponse> rxResponse = Preconditions.checkNotNull(delegate.apply(rxRequest)); rxResponse.subscribe( value -> { // Don't try to respond if the server has already canceled the request if (responseObserver instanceof ServerCallStreamObserver && ((ServerCallStreamObserver) responseObserver).isCancelled()) { return; } responseObserver.onNext(value); responseObserver.onCompleted(); }, throwable -> responseObserver.onError(prepareError(throwable))); } catch (Throwable throwable) { responseObserver.onError(prepareError(throwable)); } }
/** * Implements a unary -> stream call as {@link Mono} -> {@link Flux}, where the server responds with a * stream of messages. */ public static <TRequest, TResponse> void oneToMany( TRequest request, StreamObserver<TResponse> responseObserver, Function<Mono<TRequest>, Flux<TResponse>> delegate) { try { Mono<TRequest> rxRequest = Mono.just(request); Flux<TResponse> rxResponse = Preconditions.checkNotNull(delegate.apply(rxRequest)); rxResponse.subscribe(new ReactivePublisherBackpressureOnReadyHandlerServer<>( (ServerCallStreamObserver<TResponse>) responseObserver)); } catch (Throwable throwable) { responseObserver.onError(prepareError(throwable)); } }
responseObserver.onError(prepareError(throwable)); responseObserver.onError(prepareError(throwable));
); } catch (Throwable throwable) { responseObserver.onError(prepareError(throwable));