encode method
Encodes the packet table to a Uint8List.
Implementation
Uint8List encode() {
final List<Uint8List> encodedVarintEntriesChunks =
entries.map((int entry) => encodeVarint(entry)).toList();
int totalLength = 24;
for (final Uint8List encodedChunk in encodedVarintEntriesChunks) {
totalLength += encodedChunk.length;
}
final ByteData data = ByteData(totalLength);
data.setInt64(0, header.numberPackets);
data.setInt64(8, header.numberValidFrames);
data.setInt32(16, header.primingFrames);
data.setInt32(20, header.remainderFrames);
int offset = 24;
for (final Uint8List entry in encodedVarintEntriesChunks) {
for (int i = 0; i < entry.length; i++) {
data.setUint8(offset + i, entry[i]);
}
offset += entry.length;
}
return data.buffer.asUint8List();
}