diff options
Diffstat (limited to 'src/objc')
-rw-r--r-- | src/objc/abstract/MCOConstants.h | 44 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.h | 22 | ||||
-rw-r--r-- | src/objc/imap/MCOIMAPSearchExpression.mm | 11 | ||||
-rwxr-xr-x | src/objc/imap/MCOIMAPSession.h | 6 | ||||
-rwxr-xr-x | src/objc/imap/MCOIMAPSession.mm | 5 | ||||
-rw-r--r-- | src/objc/pop/MCOPOP.h | 2 | ||||
-rw-r--r-- | src/objc/smtp/MCOSMTPSession.mm | 2 |
7 files changed, 90 insertions, 2 deletions
diff --git a/src/objc/abstract/MCOConstants.h b/src/objc/abstract/MCOConstants.h index 6b6407c0..eb276e0f 100644 --- a/src/objc/abstract/MCOConstants.h +++ b/src/objc/abstract/MCOConstants.h @@ -35,6 +35,8 @@ typedef enum { MCOAuthTypeSASLKerberosV4 = 1 << 7, /** OAuth2 authentication.*/ MCOAuthTypeXOAuth2 = 1 << 8, + /** OAuth2 authentication on outlook.com.*/ + MCOAuthTypeXOAuth2Outlook = 1 << 9, } MCOAuthType; /** It's the IMAP flags of the folder.*/ @@ -184,12 +186,54 @@ typedef enum { MCOIMAPSearchKindUids, /** Match headers of the message.*/ MCOIMAPSearchKindHeader, + /** Match messages that are read.*/ + MCOIMAPSearchKindRead, + /** Match messages that are not read.*/ + MCOIMAPSearchKindUnread, + /** Match messages that are flagged.*/ + MCOIMAPSearchKindFlagged, + /** Match messages that are not flagged.*/ + MCOIMAPSearchKindUnflagged, + /** Match messages that are answered.*/ + MCOIMAPSearchKindAnswered, + /** Match messages that are not answered.*/ + MCOIMAPSearchKindUnanswered, + /** Match messages that are a drafts.*/ + MCOIMAPSearchKindDraft, + /** Match messages that are not drafts.*/ + MCOIMAPSearchKindUndraft, + /** Match messages that are deleted.*/ + MCOIMAPSearchKindDeleted, + /** Match messages that are spam.*/ + MCOIMAPSearchKindSpam, + /** Match messages before the given date.*/ + MCOIMAPSearchKindBeforeDate, + /** Match messages on the given date.*/ + MCOIMAPSearchKindOnDate, + /** Match messages after the given date.*/ + MCOIMAPSearchKindSinceDate, + /** Match messages before the given received date.*/ + MCOIMAPSearchKindBeforeReceivedDate, + /** Match messages on the given received date.*/ + MCOIMAPSearchKindOnReceivedDate, + /** Match messages after the given received date.*/ + MCOIMAPSearchKindSinceReceivedDate, + /** Match messages that are larger than the given size in bytes.*/ + MCOIMAPSearchKindSizeLarger, + /** Match messages that are smaller than the given size in bytes.*/ + MCOIMAPSearchKindSizeSmaller, /** Match X-GM-THRID.*/ MCOIMAPSearchGmailThreadID, + /** Match X-GM-MSGID.*/ + MCOIMAPSearchGmailMessageID, + /** Match X-GM-RAW.*/ + MCOIMAPSearchGmailRaw, /** Or expresssion.*/ MCOIMAPSearchKindOr, /** And expression.*/ MCOIMAPSearchKindAnd, + /** Not expression.*/ + MCOIMAPSearchKindNot, } MCOIMAPSearchKind; /** Keys for the namespace dictionary.*/ diff --git a/src/objc/imap/MCOIMAPSearchExpression.h b/src/objc/imap/MCOIMAPSearchExpression.h index d1d2d701..fbffb8f3 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.h +++ b/src/objc/imap/MCOIMAPSearchExpression.h @@ -287,6 +287,16 @@ */ + (MCOIMAPSearchExpression *) searchGmailThreadID:(uint64_t)number; + +/** + Creates a search expression that matches emails with the given gmail message id + + Example: + + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchGmailMessageID:aMessageID] + */ ++ (MCOIMAPSearchExpression *) searchGmailMessageID:(uint64_t)number; + /** Creates a search expression that gets emails that match a gmail raw search expression. @@ -320,6 +330,18 @@ */ + (MCOIMAPSearchExpression *) searchOr:(MCOIMAPSearchExpression *)expression other:(MCOIMAPSearchExpression *)other; +/** + Creates a search expression that matches when the argument is not matched. + + Example: + + MCOIMAPSearchExpression * exprSubject = [MCOIMAPSearchExpression searchSubject:@"airline"] + MCOIMAPSearchExpression * expr = [MCOIMAPSearchExpression searchNot:exprSubject]; + The expression will match when the subject does not contain the word airline + + */ ++ (MCOIMAPSearchExpression *) searchNot:(MCOIMAPSearchExpression *)expression; + @end #endif diff --git a/src/objc/imap/MCOIMAPSearchExpression.mm b/src/objc/imap/MCOIMAPSearchExpression.mm index a6c89e8d..f395596c 100644 --- a/src/objc/imap/MCOIMAPSearchExpression.mm +++ b/src/objc/imap/MCOIMAPSearchExpression.mm @@ -200,6 +200,11 @@ return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchGmailThreadID(number)); } ++ (MCOIMAPSearchExpression *) searchGmailMessageID:(uint64_t)number +{ + return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchGmailMessageID(number)); +} + + (MCOIMAPSearchExpression *) searchGmailRaw:(NSString *)expr { return MCO_TO_OBJC(mailcore::IMAPSearchExpression::searchGmailRaw([expr mco_mcString])); @@ -217,4 +222,10 @@ return MCO_TO_OBJC(result); } ++ (MCOIMAPSearchExpression *) searchNot:(MCOIMAPSearchExpression *)expression +{ + mailcore::IMAPSearchExpression * result = mailcore::IMAPSearchExpression::searchNot(expression->_nativeExpr); + return MCO_TO_OBJC(result); +} + @end diff --git a/src/objc/imap/MCOIMAPSession.h b/src/objc/imap/MCOIMAPSession.h index 9edffa72..09f1c610 100755 --- a/src/objc/imap/MCOIMAPSession.h +++ b/src/objc/imap/MCOIMAPSession.h @@ -138,6 +138,11 @@ */ @property (nonatomic, copy) MCOOperationQueueRunningChangeBlock operationQueueRunningChangeBlock; +/** + Cancel all operations + */ +- (void) cancelAllOperations; + /** @name Folder Operations */ /** @@ -411,6 +416,7 @@ }]; @warn *Important*: This is only for servers that support Conditional Store. See [RFC4551](http://tools.ietf.org/html/rfc4551) +vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162](http://tools.ietf.org/html/rfc5162) */ - (MCOIMAPFetchMessagesOperation *) syncMessagesByUIDWithFolder:(NSString *)folder requestKind:(MCOIMAPMessagesRequestKind)requestKind diff --git a/src/objc/imap/MCOIMAPSession.mm b/src/objc/imap/MCOIMAPSession.mm index 0b0c638a..dddb27fa 100755 --- a/src/objc/imap/MCOIMAPSession.mm +++ b/src/objc/imap/MCOIMAPSession.mm @@ -168,6 +168,11 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue, return _operationQueueRunningChangeBlock; } +- (void) cancelAllOperations +{ + MCO_NATIVE_INSTANCE->cancelAllOperations(); +} + #pragma mark - Operations #define MCO_TO_OBJC_OP(op) [self _objcOperationFromNativeOp:op]; diff --git a/src/objc/pop/MCOPOP.h b/src/objc/pop/MCOPOP.h index 18074305..5a75ff4f 100644 --- a/src/objc/pop/MCOPOP.h +++ b/src/objc/pop/MCOPOP.h @@ -6,7 +6,7 @@ // Copyright (c) 2013 MailCore. All rights reserved. // -#ifndef MAILCORE_MCOPOP_H_ +#ifndef MAILCORE_MCOPOP_H #define MAILCORE_MCOPOP_H diff --git a/src/objc/smtp/MCOSMTPSession.mm b/src/objc/smtp/MCOSMTPSession.mm index b6ae6a4f..17dc5057 100644 --- a/src/objc/smtp/MCOSMTPSession.mm +++ b/src/objc/smtp/MCOSMTPSession.mm @@ -124,7 +124,7 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue, return result; } -- (MCOOperation *) checkAccountOperationWithFrom:(MCOAddress *)from +- (MCOSMTPOperation *) checkAccountOperationWithFrom:(MCOAddress *)from { mailcore::SMTPOperation *coreOp = MCO_NATIVE_INSTANCE->checkAccountOperation(MCO_FROM_OBJC(mailcore::Address, from)); MCOSMTPOperation * result = [[[MCOSMTPOperation alloc] initWithMCOperation:coreOp] autorelease]; |