add method
void
add(])
override
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, [
Map<int, Map<String, String>> metadata = const {},
]) {
_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) {
_buffer.write(',\n');
} else {
_isFirst = false;
}
final metaStr = metadata.containsKey(i)
? ', "args": ${jsonEncode(metadata[i])}'
: '';
final escapedName = jsonEncode(name);
_buffer.write(
' {"name": $escapedName, "cat": "TUI", "ph": "$ph", "ts": $realTs, "pid": 1, "tid": $isolateId$metaStr}',
);
}
}