add method
Send a buffer of event data and list of newly registered strings to the sink.
Implementation
@override
void add(List<int> buffer, List<String> newStrings) {
_stringTable.addAll(newStrings);
final numEvents = buffer.length ~/ 2;
for (int i = 0; i < numEvents; i++) {
final word0 = buffer[i * 2];
final ts = buffer[i * 2 + 1];
final phaseVal = word0 & 0xFF;
final isolateId = (word0 >> 8) & 0xFFFFFF;
final stringId = (word0 >> 32) & 0xFFFFFFFF;
final name = (stringId < _stringTable.length)
? _stringTable[stringId]
: 'Unknown';
final ph = (phaseVal == Phase.begin)
? 'B'
: (phaseVal == Phase.end ? 'E' : 'i');
final realTs = baseEpochUs + ts;
if (!_isFirst) {
_ios.write(',\n');
} else {
_isFirst = false;
}
_ios.write(
' {"name": "$name", "cat": "TUI", "ph": "$ph", "ts": $realTs, "pid": 1, "tid": $isolateId}',
);
}
}