Changeset 689

Show
Ignore:
Timestamp:
11/02/08 16:57:18 (2 months ago)
Author:
gbooker
Message:

Added some better saving procedures, including a return that says whether it suceeded or not

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireMetaDataSupport.h

    r570 r689  
    2929 */ 
    3030@interface SapphireMetaDataSupport : NSObject { 
    31         NSTimer         *writeTimer;            /*!< @brief The timer to agregate writes*/ 
     31        NSTimer                 *writeTimer;            /*!< @brief The timer to agregate writes*/ 
     32        NSTimeInterval  interval;                       /*!< @brief The write interval*/ 
    3233} 
    3334 
     
    3637 * 
    3738 * @param context The context to save 
     39 * @return YES if the save succeeded, NO otherwise 
    3840 */ 
    39 + (void)save:(NSManagedObjectContext *)context; 
     41+ (BOOL)save:(NSManagedObjectContext *)context; 
    4042 
    4143/*! 
  • branches/CoreData/SapphireFrappliance/MetaData/Support/SapphireMetaDataSupport.m

    r685 r689  
    102102- (void)realWriteMetaData:(NSTimer *)timer 
    103103{ 
    104         NSTimeInterval interval = [writeTimer timeInterval] * 2; 
    105104        NSManagedObjectContext *context = nil; 
    106105        if([timer isKindOfClass:[NSManagedObjectContext class]]) 
     
    117116        } 
    118117        @catch (NSException * e) { 
    119                 NSLog(@"Could not save due to exception %@", e); 
     118                NSLog(@"Could not save due to exception \"%@\" with reason\"%@\"", [e name], [e reason]); 
    120119        } 
    121120        if(error != nil) 
    122                 NSLog(@"Save error %@", error); 
     121                NSLog(@"Save error \"%@\"", error); 
    123122        if(success == NO) 
    124123        { 
    125                 if(interval < 1) 
    126                         interval = 1; 
     124                interval *= 2; 
    127125                [writeTimer invalidate]; 
    128126                writeTimer = [NSTimer scheduledTimerWithTimeInterval:interval target:self selector:@selector(realWriteMetaData:) userInfo:context repeats:NO]; 
     
    130128} 
    131129 
    132 - (void)save:(NSManagedObjectContext *)context; 
    133 
    134         [self realWriteMetaData:(NSTimer *)context]; 
    135 
    136  
    137 + (void)save:(NSManagedObjectContext *)context 
     130- (BOOL)save:(NSManagedObjectContext *)context; 
     131
     132        if(writeTimer == nil) 
     133        { 
     134                interval = 1; 
     135                [self realWriteMetaData:(NSTimer *)context]; 
     136                return (writeTimer == nil); 
     137        } 
     138        else 
     139                return YES; 
     140
     141 
     142+ (BOOL)save:(NSManagedObjectContext *)context 
    138143{ 
    139144        if(context == nil) 
    140                 return
    141          
    142         [[SapphireMetaDataSupport sharedInstance] save:context]; 
     145                return NO
     146         
     147        return [[SapphireMetaDataSupport sharedInstance] save:context]; 
    143148} 
    144149