clearCache method

  1. @override
Future<void> clearCache({
  1. SyncScope? scope,
})
override

Clears cached data. When scope is provided, clears only that scope; otherwise clears all data. Implementations should also clear sync points and pending operations for the cleared scope(s).

Implementation

@override
Future<void> clearCache({SyncScope? scope}) async {
  if (scope == null) {
    await (db.delete(db.items)).go();
    await (db.delete(db.pendingOps)).go();
    await (db.delete(db.syncPoints)).go();
  } else {
    final sk = _scopeKey(scope);
    await (db.delete(db.items)..where(
          (t) => t.scopeName.equals(scope.name) & t.scopeKeys.equals(sk),
        ))
        .go();
    await (db.delete(db.pendingOps)..where(
          (t) => t.scopeName.equals(scope.name) & t.scopeKeys.equals(sk),
        ))
        .go();
    await (db.delete(db.syncPoints)..where(
          (t) => t.scopeName.equals(scope.name) & t.scopeKeys.equals(sk),
        ))
        .go();
  }
}