aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap/MCOIMAPQuotaOperation.mm
diff options
context:
space:
mode:
authorGravatar Petro Korienev <soxjke@gmail.com>2013-08-09 19:05:18 +0300
committerGravatar Petro Korienev <soxjke@gmail.com>2013-08-09 19:05:18 +0300
commit1e05ee7ea55905b26b4b9e8545c881f63b2cdf6f (patch)
tree6a6e1edc25854c5b32b3ead90e9157182ee14842 /src/objc/imap/MCOIMAPQuotaOperation.mm
parentc6c9d10e66ae6a01fabd6c55c4492566372b59e5 (diff)
renamed getQuotaOperation to quotaOperation, removed debug stuff
Diffstat (limited to 'src/objc/imap/MCOIMAPQuotaOperation.mm')
-rw-r--r--src/objc/imap/MCOIMAPQuotaOperation.mm69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/objc/imap/MCOIMAPQuotaOperation.mm b/src/objc/imap/MCOIMAPQuotaOperation.mm
new file mode 100644
index 00000000..5be2571f
--- /dev/null
+++ b/src/objc/imap/MCOIMAPQuotaOperation.mm
@@ -0,0 +1,69 @@
+//
+// MCOIMAPQuotaOperation.m
+// mailcore2
+//
+// Created by Petro Korenev on 8/2/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import "MCOIMAPQuotaOperation.h"
+
+#include "MCAsyncIMAP.h"
+
+#import "MCOOperation+Private.h"
+#import "MCOUtils.h"
+
+typedef void (^CompletionType)(NSError *error, NSUInteger usage, NSUInteger limit);
+
+@implementation MCOIMAPQuotaOperation {
+ CompletionType _completionBlock;
+}
+
+#define nativeType mailcore::IMAPQuotaOperation
+
++ (void) load
+{
+ MCORegisterClass(self, &typeid(nativeType));
+}
+
++ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ nativeType * op = (nativeType *) object;
+ return [[[self alloc] initWithMCOperation:op] autorelease];
+}
+
+- (void) dealloc
+{
+ [_completionBlock release];
+ [super dealloc];
+}
+
+- (void) start:(void (^)(NSError *error, NSUInteger usage, NSUInteger limit))completionBlock
+{
+ _completionBlock = [completionBlock copy];
+ [self start];
+}
+
+- (void) cancel
+{
+ [_completionBlock release];
+ _completionBlock = nil;
+ [super cancel];
+}
+
+- (void) operationCompleted
+{
+ if (_completionBlock == NULL)
+ return;
+
+ nativeType *op = MCO_NATIVE_INSTANCE;
+ if (op->error() == mailcore::ErrorNone) {
+ _completionBlock(nil, op->usage(), op->limit());
+ } else {
+ _completionBlock([NSError mco_errorWithErrorCode:op->error()], 0, 0);
+ }
+ [_completionBlock release];
+ _completionBlock = nil;
+}
+
+@end