aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap/MCOIMAPFetchFoldersOperation.mm
diff options
context:
space:
mode:
authorGravatar DINH Viet Hoa <dinh.viet.hoa@gmail.com>2013-03-23 16:27:20 -0700
committerGravatar DINH Viet Hoa <dinh.viet.hoa@gmail.com>2013-03-23 16:27:20 -0700
commitd9444ef87c866e3535562a693236b55d88379886 (patch)
treeabfef08ad60df8e84fa46549be7bdd10bb713c9a /src/objc/imap/MCOIMAPFetchFoldersOperation.mm
parent77d8decc5071234189dc803d715015f0a93c7652 (diff)
Make IMAP ObjC bridge implementation consistent
Diffstat (limited to 'src/objc/imap/MCOIMAPFetchFoldersOperation.mm')
-rw-r--r--src/objc/imap/MCOIMAPFetchFoldersOperation.mm35
1 files changed, 24 insertions, 11 deletions
diff --git a/src/objc/imap/MCOIMAPFetchFoldersOperation.mm b/src/objc/imap/MCOIMAPFetchFoldersOperation.mm
index 09d5d38e..d0af62b2 100644
--- a/src/objc/imap/MCOIMAPFetchFoldersOperation.mm
+++ b/src/objc/imap/MCOIMAPFetchFoldersOperation.mm
@@ -7,10 +7,12 @@
//
#import "MCOIMAPFetchFoldersOperation.h"
+
#import "NSError+MCO.h"
-#import "NSString+MCO.h"
#import "MCOOperation+Private.h"
+#import "MCOUtils.h"
+
#import <Foundation/Foundation.h>
#import <mailcore/MCAsync.h>
@@ -20,7 +22,24 @@ using namespace mailcore;
@property (nonatomic, copy) void (^completionBlock)(NSError *error, NSArray *folder);
@end
-@implementation MCOIMAPFetchFoldersOperation
+@implementation MCOIMAPFetchFoldersOperation {
+ void (^_completionBlock)(NSError *error, NSArray *folder);
+}
+
+@synthesize completionBlock = _completionBlock;
+
+#define nativeType mailcore::IMAPFetchFoldersOperation
+
++ (void) initialize
+{
+ MCORegisterClass(self, &typeid(nativeType));
+}
+
++ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ mailcore::IMAPOperation * op = (mailcore::IMAPOperation *) object;
+ return [[[self alloc] initWithMCOperation:op] autorelease];
+}
- (void)start:(void (^)(NSError *error, NSArray *folder))completionBlock {
self.completionBlock = completionBlock;
@@ -28,18 +47,12 @@ using namespace mailcore;
}
- (void)operationCompleted {
- IMAPFetchFoldersOperation *op = (IMAPFetchFoldersOperation *) [self mcOperation];
+ IMAPFetchFoldersOperation *op = MCO_NATIVE_INSTANCE;
if (op->error() == ErrorNone) {
- NSMutableArray *nsfolders = [NSMutableArray array];
- Array *folders = op->folders();
- for (int i = 0 ; i < folders->count(); i++) {
- NSString *folder = [NSString mco_stringWithMCObject:folders->objectAtIndex(i)];
- [nsfolders addObject:folder];
- }
-
- self.completionBlock(nil, nsfolders);
+ self.completionBlock(nil, MCO_TO_OBJC(op->folders()));
} else {
self.completionBlock([NSError mco_errorWithErrorCode:op->error()], nil);
}
}
+
@end