11import Foundation
22
33/// Use both memory and disk storage. Try on memory first.
4- public final class HybridStorage < T> : StoreObservable {
4+ public final class HybridStorage < T> {
55 public let memoryStorage : MemoryStorage < T >
66 public let diskStorage : DiskStorage < T >
7-
8- var observations = [ UUID : ( HybridStorage < T > , StoreChange ) -> Void ] ( )
7+ public let registry = StorageObservationRegister < HybridStorage > ( )
98
109 public init ( memoryStorage: MemoryStorage < T > , diskStorage: DiskStorage < T > ) {
1110 self . memoryStorage = memoryStorage
@@ -28,25 +27,25 @@ extension HybridStorage: StorageAware {
2827 public func removeObject( forKey key: String ) throws {
2928 memoryStorage. removeObject ( forKey: key)
3029 try diskStorage. removeObject ( forKey: key)
31- notifyObservers ( of : . singleDeletion)
30+ registry . notifyObservers ( about : . singleDeletion, in : self )
3231 }
3332
3433 public func setObject( _ object: T , forKey key: String , expiry: Expiry ? = nil ) throws {
3534 memoryStorage. setObject ( object, forKey: key, expiry: expiry)
3635 try diskStorage. setObject ( object, forKey: key, expiry: expiry)
37- notifyObservers ( of : . addition)
36+ registry . notifyObservers ( about : . addition, in : self )
3837 }
3938
4039 public func removeAll( ) throws {
4140 memoryStorage. removeAll ( )
4241 try diskStorage. removeAll ( )
43- notifyObservers ( of : . allDeletion)
42+ registry . notifyObservers ( about : . allDeletion, in : self )
4443 }
4544
4645 public func removeExpiredObjects( ) throws {
4746 memoryStorage. removeExpiredObjects ( )
4847 try diskStorage. removeExpiredObjects ( )
49- notifyObservers ( of : . expiredDeletion)
48+ registry . notifyObservers ( about : . expiredDeletion, in : self )
5049 }
5150}
5251
0 commit comments