getBody method
Concatenate all DATA frame payloads for streamId into a single buffer.
Implementation
Uint8List? getBody(int streamId) {
final frames = _pendingData[streamId];
if (frames == null || frames.isEmpty) return null;
// Exclude empty EOF-marker frames from the returned body.
final nonEmptyFrames = frames.where((f) => f.data.isNotEmpty).toList();
if (nonEmptyFrames.isEmpty) return Uint8List(0);
final totalLength =
nonEmptyFrames.fold<int>(0, (sum, f) => sum + f.data.length);
final result = Uint8List(totalLength);
var offset = 0;
for (final frame in nonEmptyFrames) {
result.setRange(offset, offset + frame.data.length, frame.data);
offset += frame.data.length;
}
return result;
}