emitBatch method
Implementation
void emitBatch(List<TableEventSpec> specs, EventContext context) {
_refreshRowsNotifier();
if (specs.isEmpty) return;
final events = <TableEvent<T>>[];
for (final spec in specs) {
switch (spec.kind) {
case TableEventKind.insert:
events.add(TableInsertEvent<T>(context, spec.newRow as T));
case TableEventKind.update:
events.add(
TableUpdateEvent<T>(context, spec.oldRow as T, spec.newRow as T),
);
case TableEventKind.delete:
events.add(TableDeleteEvent<T>(context, spec.oldRow as T));
}
}
for (final event in events) {
switch (event) {
case TableInsertEvent<T>():
_onInsertController.add(event);
case TableUpdateEvent<T>():
_onUpdateController.add(event);
case TableDeleteEvent<T>():
_onDeleteController.add(event);
}
}
lastBatch.value = TransactionBatch<T>(context, events);
}