R
Size: a a a
R
YA
YA
IG
IG
IG
YA
self.dispatchQueue
а потом уже с ней работатьIG
self.dispatchQueue
а потом уже с ней работатьIG
IG
IG
- (TRUploadModel *)processTask
{
TRUploadModel *task = [self.delegate uploadWorkerRequestNewJob:self];
LOG(@"TRUploadWorker: processing task: %@", task);
if (task) {
task.status = TRUploadModelStatusDone;
[self.delegate uploadWorker:self taskUpdated:task];
}
return task;
}
R
IG
YA
RLMResults<__kindof RLMObject *> *tasks = [TRUploadModel objectsInRealm:self.realm where:@"status == 0"];
IG
RLMResults<__kindof RLMObject *> *tasks = [TRUploadModel objectsInRealm:self.realm where:@"status == 0"];
IG
RLMResults<__kindof RLMObject *> *tasks = [TRUploadModel objectsInRealm:self.realm where:@"status == 0"];
- (TRUploadModel *)uploadWorkerRequestNewJob:(TRUploadWorker *)uploadWorker
{
// TODO: implemented to return not finished jobs?
// TODO: hmm, maybe better to return array? Will analyze this
__block __kindof RLMObject *task = nil;
dispatch_async(self.dispatchQueue, ^{
RLMResults<__kindof RLMObject *> *tasks = [TRUploadModel objectsInRealm:self.realm where:@"status == 0"];
if (tasks.count == 0)
return;
task = tasks.firstObject;
LOG(@"TRUploadManager: found task: %@", task);
});
return task;
}
R
YA
ВК
- (NSString *)addTask:(TRUploadModel *)task
{
LOG(@"TRUploadManager: addTask: %@", task);
dispatch_async(self.dispatchQueue, ^{
[self.realm transactionWithBlock:^{
[self.realm addObject:task];
[self.worker addedNewTask];
// LOG(@"TRUploadManager: addTask realm: %@", [TRUploadModel allObjectsInRealm:self.realm]);
}];
});
return task.uuid;
}
- (RLMRealm *)realm
{
// static RLMRealm *sharedInstance = nil;
// static dispatch_once_t onceToken;
// dispatch_once(&onceToken, ^{
RLMRealmConfiguration *config = [RLMRealmConfiguration defaultConfiguration];
config.fileURL = [[[config.fileURL URLByDeletingLastPathComponent]
URLByAppendingPathComponent:@"upload_manager"]
URLByAppendingPathExtension:@"realm"];
config.objectClasses = @[TRUploadModel.class, TRUploadModelContent.class];
return [RLMRealm realmWithConfiguration:config error:nil];
// });
// return sharedInstance;
}