From 1110c2aed1d81bceb63fa36558308d55b38496c4 Mon Sep 17 00:00:00 2001 From: Jacob Ovard Date: Wed, 1 Jul 2015 14:36:10 -0600 Subject: [PATCH] Added initWithPath: to better facilitate multiple queues. --- EDQueue/EDQueue.h | 2 ++ EDQueue/EDQueue.m | 15 +++++++++++++-- EDQueue/EDQueueStorageEngine.h | 1 + EDQueue/EDQueueStorageEngine.m | 4 ++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/EDQueue/EDQueue.h b/EDQueue/EDQueue.h index 9d49848..ba74710 100755 --- a/EDQueue/EDQueue.h +++ b/EDQueue/EDQueue.h @@ -26,6 +26,8 @@ extern NSString *const EDQueueDidDrain; @interface EDQueue : NSObject + (EDQueue *)sharedInstance; ++ (NSString *)defaultPath; +- (id)initWithPath:(NSString *)path; @property (nonatomic, weak) id delegate; diff --git a/EDQueue/EDQueue.m b/EDQueue/EDQueue.m index a26f870..f7a7863 100755 --- a/EDQueue/EDQueue.m +++ b/EDQueue/EDQueue.m @@ -37,6 +37,11 @@ @implementation EDQueue #pragma mark - Singleton ++ (NSString *)defaultPath +{ + return @"edqueue_0.5.0d.db"; +} + + (EDQueue *)sharedInstance { static EDQueue *singleton = nil; @@ -49,11 +54,17 @@ + (EDQueue *)sharedInstance #pragma mark - Init -- (id)init +- (id)init { + self = [self initWithPath:[self.class defaultPath]]; + return self; +} + +- (id)initWithPath:(NSString *)path { + NSAssert(path != nil, @"Path is required and may not be null"); self = [super init]; if (self) { - _engine = [[EDQueueStorageEngine alloc] init]; + _engine = [[EDQueueStorageEngine alloc] initWithPath:path]; _retryLimit = 4; } return self; diff --git a/EDQueue/EDQueueStorageEngine.h b/EDQueue/EDQueueStorageEngine.h index aec98f4..2f86360 100755 --- a/EDQueue/EDQueueStorageEngine.h +++ b/EDQueue/EDQueueStorageEngine.h @@ -13,6 +13,7 @@ @property (retain) FMDatabaseQueue *queue; +- (id)initWithPath:(NSString *)inputPath; - (void)createJob:(id)data forTask:(id)task; - (BOOL)jobExistsForTask:(id)task; - (void)incrementAttemptForJob:(NSNumber *)jid; diff --git a/EDQueue/EDQueueStorageEngine.m b/EDQueue/EDQueueStorageEngine.m index 9d2e907..7ae3098 100755 --- a/EDQueue/EDQueueStorageEngine.m +++ b/EDQueue/EDQueueStorageEngine.m @@ -17,14 +17,14 @@ @implementation EDQueueStorageEngine #pragma mark - Init -- (id)init +- (id)initWithPath:(NSString *)inputPath { self = [super init]; if (self) { // Database path NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); NSString *documentsDirectory = [paths objectAtIndex:0]; - NSString *path = [documentsDirectory stringByAppendingPathComponent:@"edqueue_0.5.0d.db"]; + NSString *path = [documentsDirectory stringByAppendingPathComponent:inputPath]; // Allocate the queue _queue = [[FMDatabaseQueue alloc] initWithPath:path];