Java Examples for io.vertx.grpc.GrpcReadStream

The following java examples will help you to understand the usage of io.vertx.grpc.GrpcReadStream. These source code samples are taken from different open source projects.

Example 1
Project: vertx-examples-master  File: Server.java View source code
@Override
public void start() throws Exception {
    URL featureFile = Util.getDefaultFeaturesFile();
    features = Util.parseFeatures(featureFile);
    VertxServer server = VertxServerBuilder.forAddress(vertx, "localhost", 8080).addService(new RouteGuideGrpc.RouteGuideVertxImplBase() {

        @Override
        public void getFeature(Point request, Future<Feature> response) {
            response.complete(checkFeature(request));
        }

        @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 void recordRoute(GrpcReadStream<Point> request, Future<RouteSummary> response) {
            request.exceptionHandler( err -> {
                System.out.println("recordRoute cancelled");
            });
            RouteRecorder recorder = new RouteRecorder();
            request.handler(recorder::append);
            request.endHandler( v -> {
                response.complete(recorder.build());
            });
        }

        @Override
        public void routeChat(GrpcBidiExchange<RouteNote, RouteNote> exchange) {
            exchange.handler( note -> {
                List<RouteNote> notes = getOrCreateNotes(note.getLocation());
                for (RouteNote prevNote : notes.toArray(new RouteNote[0])) {
                    exchange.write(prevNote);
                }
                notes.add(note);
            });
            exchange.exceptionHandler( err -> {
                System.out.println("routeChat cancelled");
            });
            exchange.endHandler( v -> exchange.end());
        }
    }).build();
    server.start( ar -> {
        if (ar.succeeded()) {
            System.out.println("gRPC service started");
        } else {
            System.out.println("Could not start server " + ar.cause().getMessage());
        }
    });
}