@Override
    public void process(StreamDecoderInput in, StreamDecoderOutput<DeframedMessage> out) throws Exception {
        startedDeframing = true;
        int readableBytes = in.readableBytes();
        while (readableBytes >= requiredLength()) {
            final int length = requiredLength();
            if (isUninitializedType()) {
                readHeader(in);
            } else {
                out.add(readBody(in));
            }
            readableBytes -= length;
        }
    }
Construct an {@link ArmeriaMessageDeframer} for reading messages out of a gRPC request or
response with the specified parameters.
grpc-protocol/src/main/java/com/linecorp/armeria/common/grpc/protocol/ArmeriaMessageDeframer.java