Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,4 @@ build/
*.mode2v3

xcuserdata
Project/DerivedData
3 changes: 3 additions & 0 deletions EDQueue/EDQueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,12 @@ UIKIT_EXTERN NSString *const EDQueueDidDrain;
@property (weak) id<EDQueueDelegate> delegate;
@property (readonly) Boolean isRunning;
@property (readonly) Boolean isActive;
@property (readonly) NSString *name;
@property NSUInteger retryLimit;

+ (EDQueue *)sharedInstance;
+ (EDQueue *)queueNamed:(NSString *)name;

- (void)enqueueWithData:(id)data forTask:(NSString *)task;

- (void)start;
Expand Down
15 changes: 12 additions & 3 deletions EDQueue/EDQueue.m
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,20 @@ + (EDQueue *)sharedInstance
});
}

- (id)init
+ (EDQueue *)queueNamed:(NSString *)name {
return [[self alloc] initWithName:name];
}

- (id)init {
return [self initWithName:nil];
}

- (id)initWithName:(NSString *)name
{
self = [super init];
if (self) {
_engine = [[EDQueueStorageEngine alloc] init];
_name = name;
_engine = [[EDQueueStorageEngine alloc] initWithName:self.name];
_isRunning = false;
_isActive = false;
_retryLimit = 4;
Expand Down Expand Up @@ -233,7 +242,7 @@ - (void)processJob:(NSDictionary*)job withResult:(EDQueueResult)result
*/
- (void)postNotification:(NSDictionary *)object
{
[[NSNotificationCenter defaultCenter] postNotificationName:[object objectForKey:@"name"] object:[object objectForKey:@"data"]];
[[NSNotificationCenter defaultCenter] postNotificationName:[object objectForKey:@"name"] object:[object objectForKey:@"data"] userInfo:@{@"queue" : self.name?:@"default"}];
}

/**
Expand Down
2 changes: 2 additions & 0 deletions EDQueue/EDQueueStorageEngine.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@
@interface EDQueueStorageEngine : NSObject

@property (retain) FMDatabaseQueue *queue;
@property (readonly) NSString *name;

- (EDQueueStorageEngine *)initWithName:(NSString *)name;
- (void)createJob:(id)data forTask:(id)task;
- (Boolean)jobExistsForTask:(id)task;
- (void)incrementAttemptForJob:(NSNumber *)jid;
Expand Down
9 changes: 7 additions & 2 deletions EDQueue/EDQueueStorageEngine.m
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,19 @@ @implementation EDQueueStorageEngine

#pragma mark - Init

- (id)init
- (id)init {
return [self initWithName:nil];
}

- (EDQueueStorageEngine *)initWithName:(NSString *)name
{
self = [super init];
if (self) {
// Database path
_name = [NSString stringWithFormat:@"edqueue_%@.db", name?:@"0.5.0d"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"edqueue_0.5.0d.db"];
NSString *path = [documentsDirectory stringByAppendingPathComponent:self.name];

// Allocate the queue
_queue = [[FMDatabaseQueue alloc] initWithPath:path];
Expand Down