Prepping for some different block APIs

This commit is contained in:
Saul Mora
2011-04-20 14:58:38 -06:00
parent 02969aeb62
commit ffc8a0c28d
2 changed files with 29 additions and 5 deletions

View File

@@ -8,15 +8,29 @@
#import <Foundation/Foundation.h>
typedef enum
{
ARCoreDataSaveOptionInBackground = 1 << 0,
ARCoreDataSaveOptionWithNewContext = 1 << 1
} ARCoreDataSaveOption;
typedef enum
{
ARCoreDataLookupOptionWithNewContext = 1 << 0
} ARCoreDataLookupOption;
@interface ARCoreDataAction : NSObject {}
#ifdef NS_BLOCKS_AVAILABLE
+ (void) saveDataWithBlock:(void(^)(NSManagedObjectContext *localContext))block;
+ (void) saveDataInBackgroundWithBlock:(void(^)(NSManagedObjectContext *localContext))block;
+ (void) saveDataInBackgroundWithBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(void(^)(void))callback;
+ (void) saveDataWithOptions:(ARCoreDataSaveOption)options withBlock:(void(^)(NSManagedObjectContext *localContext))block;
+ (void) saveDataWithOptions:(ARCoreDataSaveOption)options withBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(void(^)(void))callback;
+ (void) lookupWithBlock:(void(^)(NSManagedObjectContext *localContext))block;
#endif

View File

@@ -14,7 +14,7 @@ dispatch_queue_t background_save_queue()
{
if (coredata_background_save_queue == NULL)
{
coredata_background_save_queue = dispatch_queue_create("com.doubleencore.coredata.backgroundsaves", 0);
coredata_background_save_queue = dispatch_queue_create("com.magicalpanda.coredata.backgroundsaves", 0);
}
return coredata_background_save_queue;
}
@@ -23,7 +23,7 @@ dispatch_queue_t background_save_queue()
#ifdef NS_BLOCKS_AVAILABLE
+ (void) saveDataWithBlock:(CoreDataBlock)block
+ (void) saveDataWithBlock:(void(^)(NSManagedObjectContext *localContext))block
{
NSManagedObjectContext *mainContext = [NSManagedObjectContext defaultContext];
NSManagedObjectContext *localContext = mainContext;
@@ -53,14 +53,14 @@ dispatch_queue_t background_save_queue()
[mainContext setMergePolicy:NSMergeByPropertyObjectTrumpMergePolicy];
}
+ (void) saveDataInBackgroundWithBlock:(CoreDataBlock)block
+ (void) saveDataInBackgroundWithBlock:(void(^)(NSManagedObjectContext *localContext))block
{
dispatch_async(background_save_queue(), ^{
[self saveDataWithBlock:block];
});
}
+ (void) saveDataInBackgroundWithBlock:(CoreDataBlock)block completion:(void(^)(void))callback
+ (void) saveDataInBackgroundWithBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(void(^)(void))callback
{
dispatch_async(background_save_queue(), ^{
[self saveDataWithBlock:block];
@@ -72,13 +72,23 @@ dispatch_queue_t background_save_queue()
});
}
+ (void) lookupWithBlock:(CoreDataBlock)block
+ (void) lookupWithBlock:(void(^)(NSManagedObjectContext *localContext))block
{
NSManagedObjectContext *context = [NSManagedObjectContext contextForCurrentThread];
block(context);
}
+ (void) saveDataWithOptions:(ARCoreDataSaveOption)options withBlock:(void(^)(NSManagedObjectContext *localContext))block;
{
}
+ (void) saveDataWithOptions:(ARCoreDataSaveOption)options withBlock:(void(^)(NSManagedObjectContext *localContext))block completion:(void(^)(void))callback;
{
}
#endif
@end