diff options
author | 2013-03-26 00:58:03 -0700 | |
---|---|---|
committer | 2013-03-26 00:58:03 -0700 | |
commit | 1640f3525f830df5382edb96f6e6f6a71993787c (patch) | |
tree | e69912e9934bf1400d8d49f03cfa4b6f71749d48 /src/objc/imap/MCOIMAPSearchExpression.mm | |
parent | 1353cb0ee96d92192f05e1feb1518e1534ba8cbe (diff) |
IMAP ObjC async operations implemented
Diffstat (limited to 'src/objc/imap/MCOIMAPSearchExpression.mm')
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.mm | 102 |
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 |