Changeset 820
- Timestamp:
- 04/19/2009 05:42:09 PM (3 years ago)
- Location:
- branches/CoreData/SapphireFrappliance
- Files:
-
- 7 modified
-
FRAppliance/SapphireApplianceController.h (modified) (1 diff)
-
FRAppliance/SapphireApplianceController.m (modified) (6 diffs)
-
FRAppliance/SapphireMetaDataUpgrading.m (modified) (1 diff)
-
FRAppliance/main_helper.m (modified) (2 diffs)
-
MetaData/SapphireMObjects/SapphireDirectoryMetaData.m (modified) (2 diffs)
-
MetaData/Support/SapphireMetaDataSupport.h (modified) (2 diffs)
-
MetaData/Support/SapphireMetaDataSupport.m (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/CoreData/SapphireFrappliance/FRAppliance/SapphireApplianceController.h
r800 r820 146 146 * 147 147 * @param storeFile The file path of the store (must be SQLite), nil for default path 148 * @param storeOptions The dictionary of options for the store149 148 * @return The managed object context, nil if failure 150 149 */ 151 + (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile options:(NSDictionary *)storeOptions;150 + (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile; 152 151 153 152 /*! -
branches/CoreData/SapphireFrappliance/FRAppliance/SapphireApplianceController.m
r802 r820 278 278 279 279 280 + (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile options:(NSDictionary *)storeOptions280 + (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile 281 281 { 282 282 if(storeFile == nil) … … 293 293 294 294 NSPersistentStoreCoordinator *coord = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model]; 295 if(![coord addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options: storeOptionserror:&error])295 if(![coord addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) 296 296 { 297 297 SapphireLog(SAPPHIRE_LOG_ALL, SAPPHIRE_LOG_LEVEL_ERROR, @"Could not add store: %@", error); … … 321 321 [theme setScene:[self scene]]; 322 322 323 moc = [SapphireApplianceController newManagedObjectContextForFile:nil options:nil]; 323 moc = [SapphireApplianceController newManagedObjectContextForFile:nil]; 324 [SapphireMetaDataSupport setMainContext:moc]; 324 325 if(moc == nil) 325 326 { … … 530 531 } 531 532 533 - (void)completeRescanOfDir:(NSArray *)filePaths 534 { 535 if(![filePaths count]) 536 return; 537 538 [SapphireMetaDataSupport save:moc]; 539 NSString *dirPath = [[filePaths objectAtIndex:0] stringByDeletingLastPathComponent]; 540 SapphireDirectoryMetaData *dir = [SapphireDirectoryMetaData directoryWithPath:dirPath inContext:moc]; 541 [dir addImportFilePaths:filePaths]; 542 [[dir delegate] directoryContentsChanged]; 543 [dir resumeImport]; 544 } 545 546 532 547 - (void)rescanDirectory:(NSString *)dirPath 533 548 { 549 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 534 550 if(![[NSFileManager defaultManager] isDirectory:dirPath]) 535 551 return; … … 540 556 dirPath = [dirPath stringByResolvingSymlinksInPath]; 541 557 542 SapphireDirectoryMetaData *dir = [SapphireDirectoryMetaData createDirectoryWithPath:dirPath inContext:moc]; 558 NSManagedObjectContext *threadMoc = [SapphireApplianceController newManagedObjectContextForFile:nil]; 559 SapphireDirectoryMetaData *dir = [SapphireDirectoryMetaData createDirectoryWithPath:dirPath inContext:threadMoc]; 543 560 [dir reloadDirectoryContents]; 544 [dir resumeImport]; 561 NSArray *paths = [dir importFilePaths]; 562 [SapphireMetaDataSupport applyChangesFromContext:threadMoc]; 563 [threadMoc release]; 564 [self performSelectorOnMainThread:@selector(completeRescanOfDir:) withObject:paths waitUntilDone:NO]; 565 [pool drain]; 545 566 } 546 567 … … 715 736 } 716 737 717 718 738 - (oneway void)rescanDirectory:(NSString *)dirPath 719 739 { 720 740 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 721 [ controller performSelectorOnMainThread:@selector(rescanDirectory:) withObject:dirPath waitUntilDone:YES];741 [NSThread detachNewThreadSelector:@selector(rescanDirectory:) toTarget:controller withObject:dirPath]; 722 742 [pool drain]; 723 743 } -
branches/CoreData/SapphireFrappliance/FRAppliance/SapphireMetaDataUpgrading.m
r800 r820 139 139 NSString *v1StoreFile = [applicationSupportDir() stringByAppendingPathComponent:@"metaData.sapphireData"]; 140 140 NSFileManager *fm = [NSFileManager defaultManager]; 141 NSManagedObjectContext *moc = [SapphireApplianceController newManagedObjectContextForFile:nil options:nil];141 NSManagedObjectContext *moc = [SapphireApplianceController newManagedObjectContextForFile:nil]; 142 142 @try { 143 143 if([fm fileExistsAtPath:v1StoreFile]) -
branches/CoreData/SapphireFrappliance/FRAppliance/main_helper.m
r802 r820 24 24 25 25 @interface NSObject (SapphireApplianceControllerAPI) 26 - (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile options:(NSDictionary *)storeOptions;26 + (NSManagedObjectContext *)newManagedObjectContextForFile:(NSString *)storeFile; 27 27 @end 28 28 … … 56 56 57 57 NSDictionary *storeOptions = [[NSDictionary alloc] initWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSReadOnlyPersistentStoreOption, nil]; 58 NSManagedObjectContext *moc = [NSClassFromString(@"SapphireApplianceController") newManagedObjectContextForFile:nil options:storeOptions];58 NSManagedObjectContext *moc = [NSClassFromString(@"SapphireApplianceController") newManagedObjectContextForFile:nil]; 59 59 [storeOptions release]; 60 60 if(moc == nil) -
branches/CoreData/SapphireFrappliance/MetaData/SapphireMObjects/SapphireDirectoryMetaData.m
r817 r820 88 88 89 89 Basic_Directory_Function_Inits 90 importArray = [[NSMutableArray alloc] init]; 90 91 91 92 return self; … … 273 274 - (void)rescanDirWithExistingDirs:(NSMutableArray *)existingDirs files:(NSMutableArray *)existingFiles symDirs:(NSMutableArray *)existingSymDirs symFiles:(NSMutableArray *)existingSymFiles; 274 275 { 275 [importArray release]; 276 importArray = [[NSMutableArray alloc] init]; 276 [importArray removeAllObjects]; 277 277 278 278 NSMutableDictionary *dirs = [[NSMutableDictionary alloc] init]; -
branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireMetaDataSupport.h
r801 r820 29 29 */ 30 30 @interface SapphireMetaDataSupport : NSObject { 31 NSTimer *writeTimer; /*!< @brief The timer to agregate writes*/ 32 NSTimeInterval interval; /*!< @brief The write interval*/ 33 BOOL locked; /*!< @brief Was the DB locked during the last save*/ 31 NSManagedObjectContext *mainMoc; /*!< @brief The main context*/ 32 NSTimer *writeTimer; /*!< @brief The timer to agregate writes*/ 33 NSTimeInterval interval; /*!< @brief The write interval*/ 34 BOOL locked; /*!< @brief Was the DB locked during the last save*/ 34 35 } 35 36 … … 51 52 */ 52 53 + (BOOL)save:(NSManagedObjectContext *)context; 54 55 /*! 56 * @brief Save changes in a context in the main context 57 * 58 * @param context The context with changes to save 59 */ 60 + (void)applyChangesFromContext:(NSManagedObjectContext *)context; 61 62 /*! 63 * @brief Sets the main context 64 * 65 * @param moc the main context 66 */ 67 + (void)setMainContext:(NSManagedObjectContext *)moc; 53 68 54 69 /*! -
branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireMetaDataSupport.m
r801 r820 49 49 - (NSDictionary *)changedValuesWithObjectIDs 50 50 { 51 NSMutableDictionary *ret = [[NSMutableDictionary alloc] initWithDictionary:[self changedValues]]; 51 NSDictionary *changedValues = [self changedValues]; 52 NSMutableDictionary *ret = [[NSMutableDictionary alloc] initWithDictionary:changedValues]; 52 53 NSString *key; 53 NSEnumerator *keyEnum = [ retkeyEnumerator];54 NSEnumerator *keyEnum = [changedValues keyEnumerator]; 54 55 while((key = [keyEnum nextObject]) != nil) 55 56 { … … 187 188 - (void) dealloc 188 189 { 190 [mainMoc release]; 189 191 [writeTimer invalidate]; 190 192 writeTimer = nil; … … 328 330 - (BOOL)save:(NSManagedObjectContext *)context; 329 331 { 332 if(context != mainMoc) 333 { 334 return YES; 335 } 330 336 if(writeTimer == nil) 331 337 { … … 344 350 345 351 return [[SapphireMetaDataSupport sharedInstance] save:context]; 352 } 353 354 - (void)applyChanges:(NSDictionary *)changes 355 { 356 [SapphireMetaDataSupport applyChanges:changes toContext:mainMoc]; 357 } 358 359 - (void)applyChangesFromContext:(NSManagedObjectContext *)context 360 { 361 if(mainMoc != nil) 362 { 363 NSDictionary *changes = [SapphireMetaDataSupport changesDictionaryForContext:context]; 364 [self performSelectorOnMainThread:@selector(applyChanges:) withObject:changes waitUntilDone:YES]; 365 } 366 } 367 368 + (void)applyChangesFromContext:(NSManagedObjectContext *)context 369 { 370 [[SapphireMetaDataSupport sharedInstance] applyChangesFromContext:context]; 371 } 372 373 - (void)setMainContext:(NSManagedObjectContext *)moc 374 { 375 [mainMoc release]; 376 mainMoc = [moc retain]; 377 } 378 379 + (void)setMainContext:(NSManagedObjectContext *)moc 380 { 381 [[SapphireMetaDataSupport sharedInstance] setMainContext:moc]; 346 382 } 347 383
