sendOperations method
Sends multiple operations to the server/peers efficiently.
Implementation
@override
Future<void> sendOperations(List<Operation> operations) async {
// Filter transient operations
const transientOps = {'CURSOR_MOVE', 'GHOST_UPDATE', 'PRESENCE_UPDATE'};
final opsToQueue = <Operation>[];
for (final op in operations) {
if (transientOps.contains(op.type)) {
if (_innerClient != null && _isConnected) {
// Send directly (fire and forget for transient in batch?)
// We can just await it.
await _innerClient!.sendOperation(op);
} else {
print('OfflineClient: Dropping transient operation ${op.type} because offline');
}
} else {
opsToQueue.add(op);
}
}
if (opsToQueue.isNotEmpty) {
await _queueOperations(opsToQueue);
_flushQueue();
}
}