store DB on every change

This commit is contained in:
matthias.ringwald 2011-01-07 20:30:41 +00:00
parent 8d213e1a0d
commit 2e311c5b6d

View File

@ -69,9 +69,7 @@ static void db_open(){
[pool release]; [pool release];
} }
static void db_close(){ static void db_synchronize(){
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
log_dbg("stored prefs for %u devices\n", [remote_devices count]); log_dbg("stored prefs for %u devices\n", [remote_devices count]);
// 3 different ways // 3 different ways
@ -85,6 +83,12 @@ static void db_close(){
// NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// [defaults setPersistentDomain:remote_devices forName:BTdaemonID]; // [defaults setPersistentDomain:remote_devices forName:BTdaemonID];
// [defaults synchronize]; // [defaults synchronize];
}
static void db_close(){
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
db_synchronize();
[remote_devices release]; [remote_devices release];
remote_devices = nil; remote_devices = nil;
@ -105,12 +109,15 @@ static void set_value(bd_addr_t *bd_addr, NSString *key, id value){
[remote_devices setObject:deviceDict forKey:devAddress]; [remote_devices setObject:deviceDict forKey:devAddress];
} }
[deviceDict setObject:value forKey:key]; [deviceDict setObject:value forKey:key];
db_synchronize();
} }
static void delete_value(bd_addr_t *bd_addr, NSString *key){ static void delete_value(bd_addr_t *bd_addr, NSString *key){
NSString *devAddress = stringForAddress(bd_addr); NSString *devAddress = stringForAddress(bd_addr);
NSMutableDictionary * deviceDict = [remote_devices objectForKey:devAddress]; NSMutableDictionary * deviceDict = [remote_devices objectForKey:devAddress];
[deviceDict removeObjectForKey:key]; [deviceDict removeObjectForKey:key];
db_synchronize();
} }
static id get_value(bd_addr_t *bd_addr, NSString *key){ static id get_value(bd_addr_t *bd_addr, NSString *key){