set method

void set(
  1. T value, [
  2. SharedMemoryIndexHolder? ih = null
])

Implementation

void set(T value, [SharedMemoryIndexHolder? ih = null]) {
  final index = data.elementAt(0);
  if (index < 0 || index >= cacheSize) {
    UnitRCError.reportWithMsg(
        "index out of range, index: $index, cacheSize: $cacheSize");
  }
  final targetIndex = (index + 1) % cacheSize;
  final rangeStart = 1 + targetIndex * dataSize;
  final rangeEnd = rangeStart + dataSize;
  final byteData = ByteData(dataSize);
  valueToData(byteData, value);
  data.setRange(rangeStart, rangeEnd, byteData.buffer.asUint8List());
  data.setRange(0, 1, [targetIndex]);
  ih?.index = targetIndex;
}