sendBody method

Future<void> sendBody(
  1. int streamId,
  2. Uint8List body
)

Break body into DATA frames and store them for streamId.

Implementation

Future<void> sendBody(int streamId, Uint8List body) async {
  const chunkSize = 4096;
  if (body.isEmpty) {
    // Empty body still emits an EOF marker (empty DATA frame).
    _pendingData.putIfAbsent(streamId, () => []).add(Http3DataFrame.empty());
    return;
  }
  for (var offset = 0; offset < body.length; offset += chunkSize) {
    final end =
        (offset + chunkSize < body.length) ? offset + chunkSize : body.length;
    final chunk = body.sublist(offset, end);
    _pendingData
        .putIfAbsent(streamId, () => [])
        .add(Http3DataFrame(data: chunk));
  }
}