diff options
author | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2013-03-26 00:58:03 -0700 |
---|---|---|
committer | Hoa V. DINH <dinh.viet.hoa@gmail.com> | 2013-03-26 00:58:03 -0700 |
commit | 1640f3525f830df5382edb96f6e6f6a71993787c (patch) | |
tree | e69912e9934bf1400d8d49f03cfa4b6f71749d48 /src/objc/imap/MCOIMAPFetchFoldersOperation.mm | |
parent | 1353cb0ee96d92192f05e1feb1518e1534ba8cbe (diff) |
IMAP ObjC async operations implemented
Diffstat (limited to 'src/objc/imap/MCOIMAPFetchFoldersOperation.mm')
-rw-r--r-- | src/objc/imap/MCOIMAPFetchFoldersOperation.mm | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/objc/imap/MCOIMAPFetchFoldersOperation.mm b/src/objc/imap/MCOIMAPFetchFoldersOperation.mm index 56f08aa7..abf59611 100644 --- a/src/objc/imap/MCOIMAPFetchFoldersOperation.mm +++ b/src/objc/imap/MCOIMAPFetchFoldersOperation.mm @@ -18,16 +18,12 @@ using namespace mailcore; -@interface MCOIMAPFetchFoldersOperation () -@property (nonatomic, copy) void (^completionBlock)(NSError *error, NSArray *folder); -@end +typedef void (^completionType)(NSError *error, NSArray *folder); @implementation MCOIMAPFetchFoldersOperation { - void (^_completionBlock)(NSError *error, NSArray *folder); + completionType _completionBlock; } -@synthesize completionBlock = _completionBlock; - #define nativeType mailcore::IMAPFetchFoldersOperation + (void) load @@ -37,21 +33,27 @@ using namespace mailcore; + (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object { - mailcore::IMAPOperation * op = (mailcore::IMAPOperation *) object; + nativeType * op = (nativeType *) object; return [[[self alloc] initWithMCOperation:op] autorelease]; } +- (void) dealloc +{ + [_completionBlock release]; + [super dealloc]; +} + - (void)start:(void (^)(NSError *error, NSArray *folder))completionBlock { - self.completionBlock = completionBlock; + _completionBlock = [completionBlock copy]; [self start]; } - (void)operationCompleted { - IMAPFetchFoldersOperation *op = MCO_NATIVE_INSTANCE; + nativeType *op = MCO_NATIVE_INSTANCE; if (op->error() == ErrorNone) { - self.completionBlock(nil, MCO_TO_OBJC(op->folders())); + _completionBlock(nil, MCO_TO_OBJC(op->folders())); } else { - self.completionBlock([NSError mco_errorWithErrorCode:op->error()], nil); + _completionBlock([NSError mco_errorWithErrorCode:op->error()], nil); } } |