aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc
diff options
context:
space:
mode:
Diffstat (limited to 'src/objc')
-rw-r--r--src/objc/abstract/MCOConstants.h44
-rw-r--r--src/objc/imap/MCOIMAPSearchExpression.h22
-rw-r--r--src/objc/imap/MCOIMAPSearchExpression.mm11
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.h6
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.mm5
-rw-r--r--src/objc/pop/MCOPOP.h2
-rw-r--r--src/objc/smtp/MCOSMTPSession.mm2
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];