@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 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(); }
@Override public GrpcUniExchange<O, I> write(O data) { writeStream.write(data); return this; }
@Override public GrpcBidiExchange<I, O> write(O data) { writeStream.write(data); return this; }
@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 -> {