@java.lang.Override @java.lang.SuppressWarnings("unchecked") public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { switch (methodId) { case METHODID_STREAMING_OUTPUT_CALL: serviceImpl.streamingOutputCall((io.vertx.example.grpc.Messages.StreamingOutputCallRequest) request, (io.vertx.grpc.GrpcWriteStream<io.vertx.example.grpc.Messages.StreamingOutputCallResponse>) io.vertx.grpc.GrpcWriteStream.create(responseObserver)); break; default: throw new AssertionError(); } }
@Override public void listFeatures(Rectangle request, GrpcWriteStream<Feature> response) { int left = Math.min(request.getLo().getLongitude(), request.getHi().getLongitude()); int right = Math.max(request.getLo().getLongitude(), request.getHi().getLongitude()); int top = Math.max(request.getLo().getLatitude(), request.getHi().getLatitude()); int bottom = Math.min(request.getLo().getLatitude(), request.getHi().getLatitude()); for (Feature feature : features) { if (!Util.exists(feature)) { continue; } int lat = feature.getLocation().getLatitude(); int lon = feature.getLocation().getLongitude(); if (lon >= left && lon <= right && lat >= bottom && lat <= top) { response.write(feature); } } response.end(); }
/** * <pre> * A server-to-client streaming RPC. * Obtains the Features available within the given Rectangle. Results are * streamed rather than returned at once (e.g. in a response message with a * repeated field), as the rectangle may cover a large area and contain a * huge number of features. * </pre> */ public void listFeatures(io.grpc.examples.routeguide.Rectangle request, io.vertx.grpc.GrpcWriteStream<io.grpc.examples.routeguide.Feature> response) { asyncUnimplementedUnaryCall(getListFeaturesMethod(), response.writeObserver()); }
@Override public void streamingOutputCall( Messages.StreamingOutputCallRequest request, GrpcWriteStream<Messages.StreamingOutputCallResponse> response ) { final AtomicInteger counter = new AtomicInteger(); vertx.setPeriodic(1000L, t -> { response.write(Messages.StreamingOutputCallResponse.newBuilder().setPayload( Messages.Payload.newBuilder() .setTypeValue(PayloadType.COMPRESSABLE.getNumber()) .setBody(ByteString.copyFrom( String.valueOf(counter.incrementAndGet()), Charset.forName("UTF-8"))) ).build()); }); } };
@Override public void end() { writeStream.end(); }
@Override public GrpcBidiExchange<I, O> setWriteQueueMaxSize(int maxSize) { writeStream.setWriteQueueMaxSize(maxSize); return this; }
@Override public GrpcBidiExchange<I, O> fail(Throwable t) { writeStream.fail(t); return this; }
@Override public GrpcUniExchange<O, I> drainHandler(Handler<Void> handler) { writeStream.drainHandler(handler); return this; }
@Override public boolean writeQueueFull() { return writeStream.writeQueueFull(); }
@Override public GrpcBidiExchange<I, O> write(O data) { writeStream.write(data); return this; }
@Override public void end() { writeStream.end(); }
@Override public GrpcUniExchange<O, I> setWriteQueueMaxSize(int maxSize) { writeStream.setWriteQueueMaxSize(maxSize); return this; }
@Override public GrpcUniExchange<O, I> fail(Throwable t) { writeStream.fail(t); return this; }
@Override public GrpcBidiExchange<I, O> drainHandler(Handler<Void> handler) { writeStream.drainHandler(handler); return this; }
@Override public boolean writeQueueFull() { return writeStream.writeQueueFull(); }
@Override public void streamingOutputCall(StreamingOutputCallRequest request, GrpcWriteStream<StreamingOutputCallResponse> response) { will.assertNotNull(request); for (int i = 0; i < 10; i++) { response.write(StreamingOutputCallResponse.newBuilder().build()); } response.end(); } }, startServer -> {
@java.lang.Override @java.lang.SuppressWarnings("unchecked") public void invoke(Req request, io.grpc.stub.StreamObserver<Resp> responseObserver) { switch (methodId) { case METHODID_GET_FEATURE: serviceImpl.getFeature((io.grpc.examples.routeguide.Point) request, (io.vertx.core.Future<io.grpc.examples.routeguide.Feature>) io.vertx.core.Future.<io.grpc.examples.routeguide.Feature>future().setHandler(ar -> { if (ar.succeeded()) { ((io.grpc.stub.StreamObserver<io.grpc.examples.routeguide.Feature>) responseObserver).onNext(ar.result()); responseObserver.onCompleted(); } else { responseObserver.onError(ar.cause()); } })); break; case METHODID_LIST_FEATURES: serviceImpl.listFeatures((io.grpc.examples.routeguide.Rectangle) request, (io.vertx.grpc.GrpcWriteStream<io.grpc.examples.routeguide.Feature>) io.vertx.grpc.GrpcWriteStream.create(responseObserver)); break; default: throw new AssertionError(); } }
/** * <pre> * One request followed by a sequence of responses (streamed download). * The server returns the payload with client desired type and sizes. * </pre> */ public void streamingOutputCall(io.vertx.example.grpc.Messages.StreamingOutputCallRequest request, io.vertx.grpc.GrpcWriteStream<io.vertx.example.grpc.Messages.StreamingOutputCallResponse> response) { asyncUnimplementedUnaryCall(getStreamingOutputCallMethod(), response.writeObserver()); }
@Override public GrpcUniExchange<O, I> write(O data) { writeStream.write(data); return this; }
public GrpcBidiExchangeImpl(GrpcReadStream<I> readStream, StreamObserver<O> writeObserver) { this.readStream = readStream; writeStream = GrpcWriteStream.create(writeObserver); }