aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap/MCOIMAPFetchFoldersOperation.mm
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-03-26 00:58:03 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2013-03-26 00:58:03 -0700
commit1640f3525f830df5382edb96f6e6f6a71993787c (patch)
treee69912e9934bf1400d8d49f03cfa4b6f71749d48 /src/objc/imap/MCOIMAPFetchFoldersOperation.mm
parent1353cb0ee96d92192f05e1feb1518e1534ba8cbe (diff)
IMAP ObjC async operations implemented
Diffstat (limited to 'src/objc/imap/MCOIMAPFetchFoldersOperation.mm')
-rw-r--r--src/objc/imap/MCOIMAPFetchFoldersOperation.mm24
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);
}
}