sync3
Laurent 6 months ago
parent 7ce71a4921
commit d70c649fc2
  1. 29
      LeStorage/StoreCenter.swift

@ -20,7 +20,7 @@ public class StoreCenter {
fileprivate var _stores: [String: Store] = [:]
/// Returns a default Store instance
lazy var mainStore: Store = { Store(storeCenter: self) }()
public lazy var mainStore: Store = { Store(storeCenter: self) }()
/// A KeychainStore object used to store the user's token
var tokenKeychain: KeychainService? = nil
@ -706,12 +706,13 @@ public class StoreCenter {
fileprivate func _syncRevoke(_ revokeArrays: [ObjectIdentifierArray]) {
for revokeArray in revokeArrays {
for revoked in revokeArray.items {
self.synchronizationRevoke(id: revoked.modelId, type: revokeArray.type, storeId: revoked.storeId)
Task {
for revokeArray in revokeArrays {
for revoked in revokeArray.items {
await self.synchronizationRevoke(id: revoked.modelId, type: revokeArray.type, storeId: revoked.storeId)
}
}
}
}
/// Returns a Type object for a class name
@ -772,20 +773,18 @@ public class StoreCenter {
}
/// Revokes a data that has been shared with the user
@MainActor
func synchronizationRevoke<T: SyncedStorable>(id: String, type: T.Type, storeId: String?) {
DispatchQueue.main.async {
do {
// let type = try self.classFromName(model)
if self._instanceShared(id: id, type: type) {
let count = self.mainStore.referenceCount(type: type, id: id)
if count == 0 {
try self._store(id: storeId).deleteNoSync(type: type, id: id)
}
do {
if self._instanceShared(id: id, type: type) {
let count = self.mainStore.referenceCount(type: type, id: id)
if count == 0 {
try self._store(id: storeId).deleteNoSync(type: type, id: id)
}
} catch {
Logger.error(error)
}
} catch {
Logger.error(error)
}
}

Loading…
Cancel
Save