length property

  1. @override
int get length
override

Calculate the length of the serialized frame.

Implementation

@override
int get length {
  // Type (1)
  // Largest Acked (4)
  // ACK Delay (2)
  // ACK Range Count (1)
  // First ACK Range Length (4)
  // Each additional ACK Range: Gap (1) + ACK Range Length (4) = 5 bytes
  int baseLength = 1 + 4 + 2 + 1 + 4 + (ackRanges.length * (1 + 4));

  // Add ECN counts if present (8 bytes each)
  if (ect0Count != null || ect1Count != null || ceCount != null) {
    baseLength += 1; // ECN flag byte
    if (ect0Count != null) baseLength += 8;
    if (ect1Count != null) baseLength += 8;
    if (ceCount != null) baseLength += 8;
  }

  return baseLength;
}