aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap/MCOIMAPSearchExpression.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/MCOIMAPSearchExpression.mm
parent1353cb0ee96d92192f05e1feb1518e1534ba8cbe (diff)
IMAP ObjC async operations implemented
Diffstat (limited to 'src/objc/imap/MCOIMAPSearchExpression.mm')
-rw-r--r--src/objc/imap/MCOIMAPSearchExpression.mm102
1 files changed, 102 insertions, 0 deletions
diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm
new file mode 100644
index 00000000..18e5fdc7
--- /dev/null
+++ b/src/objc/imap/MCOIMAPSearchExpression.mm
@@ -0,0 +1,102 @@
+//
+// MCOIMAPSearchExpression.m
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 3/25/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#import "MCOIMAPSearchExpression.h"
+
+#include "MCIMAP.h"
+
+#import "MCOUtils.h"
+
+@implementation MCOIMAPSearchExpression {
+ mailcore::IMAPSearchExpression * _nativeExpr;
+}
+
+#define nativeType mailcore::IMAPSearchExpression
+
++ (void) load
+{
+ MCORegisterClass(self, &typeid(nativeType));
+}
+
+- (id) copyWithZone:(NSZone *)zone
+{
+ nativeType * nativeObject = (nativeType *) [self mco_mcObject]->copy();
+ id result = [[self class] mco_objectWithMCObject:nativeObject];
+ MC_SAFE_RELEASE(nativeObject);
+ return [result retain];
+}
+
++ (NSObject *) mco_objectWithMCObject:(mailcore::Object *)object
+{
+ mailcore::IMAPSearchExpression * expr = (mailcore::IMAPSearchExpression *) object;
+ return [[[self alloc] initWithMCExpression:expr] autorelease];
+}
+
+- (id) initWithMCExpression:(mailcore::IMAPSearchExpression *)expr
+{
+ self = [super init];
+
+ _nativeExpr = (mailcore::IMAPSearchExpression *) expr->copy();
+
+ return self;
+}
+
+- (void) dealloc
+{
+ MC_SAFE_RELEASE(_nativeExpr);
+ [super dealloc];
+}
+
++ (MCOIMAPSearchExpression *) searchFrom:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchFrom([value mco_mcString]));
+}
+
++ (MCOIMAPSearchExpression *) searchRecipient:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchRecipient([value mco_mcString]));
+}
+
++ (MCOIMAPSearchExpression *) searchSubject:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchSubject([value mco_mcString]));
+}
+
++ (MCOIMAPSearchExpression *) searchContent:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchContent([value mco_mcString]));
+}
+
++ (MCOIMAPSearchExpression *) searchHeader:(NSString *)header value:(NSString *)value
+{
+ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchHeader([header mco_mcString], [value mco_mcString]));
+}
+
++ (MCOIMAPSearchExpression *) searchAnd:(MCOIMAPSearchExpression *)expression other:(MCOIMAPSearchExpression *)other
+{
+ mailcore::IMAPSearchExpression * copyExpr = (mailcore::IMAPSearchExpression *) expression->_nativeExpr->copy();
+ mailcore::IMAPSearchExpression * copyOther = (mailcore::IMAPSearchExpression *) other->_nativeExpr->copy();
+ mailcore::IMAPSearchExpression * result = mailcore::IMAPSearchExpression::searchAnd(copyExpr, copyOther);
+ copyExpr->release();
+ copyOther->release();
+
+ return MCO_TO_OBJC(result);
+}
+
++ (MCOIMAPSearchExpression *) searchOr:(MCOIMAPSearchExpression *)expression other:(MCOIMAPSearchExpression *)other
+{
+ mailcore::IMAPSearchExpression * copyExpr = (mailcore::IMAPSearchExpression *) expression->_nativeExpr->copy();
+ mailcore::IMAPSearchExpression * copyOther = (mailcore::IMAPSearchExpression *) other->_nativeExpr->copy();
+ mailcore::IMAPSearchExpression * result = mailcore::IMAPSearchExpression::searchOr(copyExpr, copyOther);
+ copyExpr->release();
+ copyOther->release();
+
+ return MCO_TO_OBJC(result);
+}
+
+@end