/ keychain / SecureObjectSync / CKDSimulatedStore.m
CKDSimulatedStore.m
 1  //
 2  //  CKDSimulatedStore.m
 3  //  Security
 4  //
 5  
 6  #import "CKDSimulatedStore.h"
 7  #import "CKDKVSProxy.h"
 8  
 9  #include "SOSCloudKeychainConstants.h"
10  #include <utilities/debugging.h>
11  
12  #import "SyncedDefaults/SYDConstants.h"
13  #include <os/activity.h>
14  
15  @interface CKDSimulatedStore ()
16  @property (readwrite, weak) UbiqitousKVSProxy* proxy;
17  @property (readwrite) NSMutableDictionary<NSString*, NSObject*>* data;
18  @end
19  
20  @implementation CKDSimulatedStore
21  
22  + (instancetype)simulatedInterface {
23      return [[CKDSimulatedStore alloc] init];
24  }
25  
26  - (instancetype)init {
27      if ((self = [super init])) {
28          self.proxy = nil;
29          self.data = [NSMutableDictionary<NSString*, NSObject*> dictionary];
30      }
31      return self;
32  }
33  
34  - (void) connectToProxy: (UbiqitousKVSProxy*) proxy {
35      _proxy = proxy;
36  }
37  
38  - (void)setObject:(id)obj forKey:(NSString*)key {
39      [self.data setValue: obj forKey: key];
40  }
41  
42  - (NSDictionary<NSString *, id>*) copyAsDictionary {
43      return self.data;
44  }
45  
46  - (void)addEntriesFromDictionary:(NSDictionary<NSString*, NSObject*> *)otherDictionary {
47      [otherDictionary enumerateKeysAndObjectsUsingBlock:^(NSString * _Nonnull key, NSObject * _Nonnull obj, BOOL * _Nonnull stop) {
48          [self setObject:obj forKey:key];
49      }];
50  }
51  
52  - (id)objectForKey:(NSString*)key {
53      return [self.data objectForKey:key];
54  }
55  
56  - (void)removeObjectForKey:(NSString*)key {
57      return [self.data removeObjectForKey:key];
58  }
59  
60  - (void)removeAllObjects {
61      [self.data removeAllObjects];
62  }
63  
64  - (void)pushWrites:(NSArray<NSString*>*)keys requiresForceSync:(BOOL)requiresForceSync
65  {
66  }
67  
68  - (void)addOneToOutGoing{
69      
70  }
71  - (BOOL) pullUpdates:(NSError **)failure
72  {
73      return true;
74  }
75  
76  - (void)remoteSetObject:(id)obj forKey:(NSString*)key
77  {
78      [self.data setObject:obj forKey:key];
79  
80      [self.proxy storeKeysChanged: [NSSet setWithObject:key] initial: NO];
81  }
82  
83  - (void)perfCounters:(void(^)(NSDictionary *counters))callback
84  {
85      callback(@{});
86  }
87  
88  @end