diff options
author | DINH Viet Hoa <dinh.viet.hoa@gmail.com> | 2013-03-23 16:27:20 -0700 |
---|---|---|
committer | DINH Viet Hoa <dinh.viet.hoa@gmail.com> | 2013-03-23 16:27:20 -0700 |
commit | d9444ef87c866e3535562a693236b55d88379886 (patch) | |
tree | abfef08ad60df8e84fa46549be7bdd10bb713c9a /src/objc/imap/MCOIMAPFetchFoldersOperation.mm | |
parent | 77d8decc5071234189dc803d715015f0a93c7652 (diff) |
Make IMAP ObjC bridge implementation consistent
Diffstat (limited to 'src/objc/imap/MCOIMAPFetchFoldersOperation.mm')
-rw-r--r-- | src/objc/imap/MCOIMAPFetchFoldersOperation.mm | 35 |
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 |