writeByteData method

void writeByteData(
  1. ByteData value, [
  2. int index = 0,
  3. int? writtenLength
])

Writes bytes from ByteData.

Implementation

void writeByteData(ByteData value, [int index = 0, int? writtenLength]) {
  final int lengthToWrite = writtenLength ?? value.lengthInBytes - index;
  ensureAvailableLength(lengthToWrite);

  final byteData = _byteData;
  var bufferLength = _length;
  var remaining = lengthToWrite;

  if (remaining >= _minLengthForUint32CopyMethod) {
    final endian = Endian.host;
    while (remaining >= 4) {
      byteData.setUint32(
        bufferLength,
        value.getUint32(index, endian),
        endian,
      );
      bufferLength += 4;
      index += 4;
      remaining -= 4;
    }
  }

  while (remaining > 0) {
    byteData.setUint8(bufferLength, value.getUint8(index));
    bufferLength++;
    index++;
    remaining--;
  }

  _length = bufferLength;
}