writeFrom method

  1. @override
Future<void> writeFrom(
  1. List<int> bytes
)
override

Writes bytes starting at the current position, advancing it by bytes.length.

Implementation

@override
Future<void> writeFrom(List<int> bytes) async {
  _checkOpen();
  if (bytes.isEmpty) return;
  if (_chunkLength > 0 && _position != _chunkStart + _chunkLength) {
    await _flush();
  }
  if (_chunkLength + bytes.length > _chunkSize) await _flush();
  if (bytes.length >= _chunkSize) {
    await _write(
      _position,
      bytes is Uint8List ? bytes : Uint8List.fromList(bytes),
    );
  } else {
    if (_chunkLength == 0) _chunkStart = _position;
    _chunk.setRange(_chunkLength, _chunkLength + bytes.length, bytes);
    _chunkLength += bytes.length;
  }
  _position += bytes.length;
}