deleteBatchDetailed method
Implementation
Future<DeleteBatchResult> deleteBatchDetailed(List<int> ids) async {
return await _lock.synchronized(() async {
final deletedIds = <int>{};
final sqliteIds = <int>[];
final memorySeqs = <int>{};
for (final id in ids) {
if (id < 0) {
memorySeqs.add(-(id) - 1);
} else {
sqliteIds.add(id);
}
}
if (memorySeqs.isNotEmpty) {
_memoryQueue.removeBySeqs(memorySeqs);
deletedIds.addAll(memorySeqs.map((seq) => -(seq + 1)));
}
if (sqliteIds.isNotEmpty) {
deletedIds.addAll(await _deleteSqliteIdsLocked(sqliteIds));
}
return DeleteBatchResult(
deletedIds: deletedIds,
pendingSqliteDeleteIds: sqliteIds
.where((id) => !deletedIds.contains(id))
.toSet(),
);
});
}