protected void frameAndServe(
            Service<HttpRequest, HttpResponse> delegate,
            ServiceRequestContext ctx,
            RequestHeaders grpcHeaders,
            HttpData content,
            CompletableFuture<HttpResponse> res,
            @Nullable Function<AggregatedHttpResponse, AggregatedHttpResponse> responseConverter) {
        final HttpRequest grpcRequest;
        ctx.setAttr(IS_UNFRAMED_GRPC, true);
        try (ArmeriaMessageFramer framer = new ArmeriaMessageFramer(
                ctx.alloc(), ArmeriaMessageFramer.NO_MAX_OUTBOUND_MESSAGE_SIZE, false)) {
            final HttpData frame;
            boolean success = false;
            try {
                frame = framer.writePayload(content.byteBuf());
                success = true;
            } finally {
                if (!success) {
                    content.close();
                }
            }
            grpcRequest = HttpRequest.of(grpcHeaders, frame);
        }

        final HttpResponse grpcResponse;
        try {
            grpcResponse = delegate.serve(ctx, grpcRequest);
        } catch (Exception e) {
            res.completeExceptionally(e);
            return;
        }

        grpcResponse.aggregate(AggregationOptions.usePooledObjects(ctx.alloc(), ctx.eventLoop()))
                    .handle(
                            (framedResponse, t) -> {
                                try (SafeCloseable ignore = ctx.push()) {
                                    if (t != null) {
                                        res.completeExceptionally(t);
                                    } else {
                                        deframeAndRespond(ctx, framedResponse, res, unframedGrpcErrorHandler,
                                                          responseConverter);
                                    }
                                }
                                return null;
                            });
    }
Creates a new instance that decorates the specified {@link HttpService}.
grpc/src/main/java/com/linecorp/armeria/server/grpc/AbstractUnframedGrpcService.java