grpcDecodeFrames function

List<Map<String, Object?>> grpcDecodeFrames(
  1. List<int> buffer
)

Decode all gRPC frames from buffer.

Returns a list of maps, each containing:

  • messageBytes (List<int>): the decoded message payload.
  • compressed (bool): whether the compression flag was set.

Implementation

List<Map<String, Object?>> grpcDecodeFrames(List<int> buffer) {
  var frames = <Map<String, Object?>>[];
  var offset = 0;
  while (offset < buffer.length) {
    var decoded = grpcDecodeFrame(buffer, offset);
    var bytesRead = decoded['bytesRead'] as int;
    frames.add({
      'messageBytes': decoded['messageBytes'],
      'compressed': decoded['compressed'],
    });
    offset += bytesRead;
  }
  return frames;
}