com.salesforce.reactivegrpc.jmh.BenchmarkReactorServerServiceImpl Maven / Gradle / Ivy
/*
* Copyright (c) 2019, Salesforce.com, Inc.
* All rights reserved.
* Licensed under the BSD 3-Clause license.
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
*/
package com.salesforce.reactivegrpc.jmh;
import java.util.Arrays;
import com.salesforce.reactivegrpc.jmh.proto.Messages;
import com.salesforce.reactivegrpc.jmh.proto.ReactorBenchmarkServiceGrpc;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
/**
* Reactor benchmarking service.
*/
public class BenchmarkReactorServerServiceImpl extends
ReactorBenchmarkServiceGrpc.BenchmarkServiceImplBase {
private final Mono responseMono;
private final Flux responseFlux;
public BenchmarkReactorServerServiceImpl(int times) {
Messages.SimpleResponse[] array = new Messages.SimpleResponse[times];
Arrays.fill(array, Messages.SimpleResponse.getDefaultInstance());
this.responseFlux = Flux.fromArray(array);
this.responseMono = Mono.just(Messages.SimpleResponse.getDefaultInstance());
}
@Override
public Mono unaryCall(Mono request) {
return request.then(responseMono);
}
@Override
public Flux streamingFromServer(Mono request) {
return request.thenMany(responseFlux);
}
@Override
public Mono streamingFromClient(Flux request) {
return request.then(responseMono);
}
@Override
public Flux streamingBothWays(Flux request) {
request.subscribe();
return responseFlux;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy