aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/objc/imap
diff options
context:
space:
mode:
authorGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-14 22:20:58 -0700
committerGravatar Hoa V. DINH <dinh.viet.hoa@gmail.com>2014-10-14 22:20:58 -0700
commitf2e2bd964a01104fa0e265c817f9d41cd3f2bb65 (patch)
tree71d6435e2ebebf14d6c65000cba9a13046aa46f3 /src/objc/imap
parent7e07d8ffb4f10fb25efbdd97946066e20fae245f (diff)
IMAP sequence number methods
Diffstat (limited to 'src/objc/imap')
-rw-r--r--src/objc/imap/MCOIMAPMessage.h4
-rw-r--r--src/objc/imap/MCOIMAPMessage.mm1
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.h261
-rwxr-xr-xsrc/objc/imap/MCOIMAPSession.mm156
4 files changed, 395 insertions, 27 deletions
diff --git a/src/objc/imap/MCOIMAPMessage.h b/src/objc/imap/MCOIMAPMessage.h
index 7ca40b9e..8e2e1c27 100644
--- a/src/objc/imap/MCOIMAPMessage.h
+++ b/src/objc/imap/MCOIMAPMessage.h
@@ -34,6 +34,10 @@
/** IMAP UID of the message. */
@property (nonatomic, assign) uint32_t uid;
+/** IMAP sequence number of the message.
+ @warning *Important*: This property won't be serialized. */
+@property (nonatomic, assign) uint32_t sequenceNumber;
+
/* Size of the entire message */
@property (nonatomic, assign) uint32_t size;
diff --git a/src/objc/imap/MCOIMAPMessage.mm b/src/objc/imap/MCOIMAPMessage.mm
index f663d8bd..d7d499ef 100644
--- a/src/objc/imap/MCOIMAPMessage.mm
+++ b/src/objc/imap/MCOIMAPMessage.mm
@@ -42,6 +42,7 @@
MCO_SYNTHESIZE_NSCODING
MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setUid, uid)
+MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setSequenceNumber, sequenceNumber)
MCO_OBJC_SYNTHESIZE_SCALAR(uint32_t, uint32_t, setSize, size)
MCO_OBJC_SYNTHESIZE_SCALAR(MCOMessageFlag, mailcore::MessageFlag, setFlags, flags)
MCO_OBJC_SYNTHESIZE_SCALAR(MCOMessageFlag, mailcore::MessageFlag, setOriginalFlags, originalFlags)
diff --git a/src/objc/imap/MCOIMAPSession.h b/src/objc/imap/MCOIMAPSession.h
index c9eafd87..e4ad33c2 100755
--- a/src/objc/imap/MCOIMAPSession.h
+++ b/src/objc/imap/MCOIMAPSession.h
@@ -326,6 +326,25 @@
uids:(MCOIndexSet *)uids
kind:(MCOIMAPStoreFlagsRequestKind)kind
flags:(MCOMessageFlag)flags;
+
+/**
+ Returns an operation to change flags of messages, using IMAP sequence number.
+
+ For example: Adds the seen flag to the message with the sequence number number 42.
+
+ MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ flags:MCOMessageFlagSeen];
+ [op start:^(NSError * error) {
+ ...
+ }];
+ */
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)uinumbersds
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags;
+
/**
Returns an operation to change flags and custom flags of messages.
@@ -345,15 +364,55 @@
kind:(MCOIMAPStoreFlagsRequestKind)kind
flags:(MCOMessageFlag)flags
customFlags:(NSArray *)customFlags;
+
+
+/**
+ Returns an operation to change flags and custom flags of messages, using IMAP sequence number.
+
+ For example: Adds the seen flag and $CNS-Greeting-On flag to the message with the sequence number 42.
+
+ MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ flags:MCOMessageFlagSeen
+ customFlags:@["$CNS-Greeting-On"]];
+ [op start:^(NSError * error) {
+ ...
+ }];
+ */
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+ customFlags:(NSArray *)customFlags;
+
+/**
+ Returns an operation to change labels of messages. Intended for Gmail
+
+ For example: Adds the label "Home" flag to the message with UID 42.
+
+ MCOIMAPOperation * op = [session storeLabelsOperationWithFolder:@"INBOX"
+ numbers:[MCOIndexSet indexSetWithIndex:42]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ labels:[NSArray arrayWithObject:@"Home"]];
+ [op start:^(NSError * error) {
+ ...
+ }];
+*/
+- (MCOIMAPOperation *) storeLabelsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ labels:(NSArray *)labels;
+
/**
Returns an operation to change labels of messages. Intended for Gmail
For example: Adds the label "Home" flag to the message with UID 456.
- MCOIMAPOperation * op = [session storeFlagsOperationWithFolder:@"INBOX"
- uids:[MCOIndexSet indexSetWithIndex:456]
- kind:MCOIMAPStoreFlagsRequestKindAdd
- labels:[NSArray arrayWithObject:@"Home"]];
+ MCOIMAPOperation * op = [session storeLabelsOperationWithFolder:@"INBOX"
+ uids:[MCOIndexSet indexSetWithIndex:456]
+ kind:MCOIMAPStoreFlagsRequestKindAdd
+ labels:[NSArray arrayWithObject:@"Home"]];
[op start:^(NSError * error) {
...
}];
@@ -379,7 +438,23 @@
*/
- (MCOIMAPFetchMessagesOperation *) fetchMessagesByUIDOperationWithFolder:(NSString *)folder
requestKind:(MCOIMAPMessagesRequestKind)requestKind
- uids:(MCOIndexSet *)uids;
+ uids:(MCOIndexSet *)uids DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch messages by UID.
+
+ MCOIMAPFetchMessagesOperation * op = [session fetchMessagesOperationWithFolder:@"INBOX"
+ requestKind:MCOIMAPMessagesRequestKindHeaders | MCOIMAPMessagesRequestKindStructure
+ uids:MCORangeMake(1, UINT64_MAX)];
+ [op start:^(NSError * error, NSArray * messages, MCOIndexSet * vanishedMessages) {
+ for(MCOIMAPMessage * msg in messages) {
+ NSLog(@"%lu: %@", [msg uid], [msg header]);
+ }
+ }];
+*/
+- (MCOIMAPFetchMessagesOperation *) fetchMessagesOperationWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids;
/**
Returns an operation to fetch messages by (sequence) number.
@@ -425,7 +500,27 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
- (MCOIMAPFetchMessagesOperation *) syncMessagesByUIDWithFolder:(NSString *)folder
requestKind:(MCOIMAPMessagesRequestKind)requestKind
uids:(MCOIndexSet *)uids
- modSeq:(uint64_t)modSeq;
+ modSeq:(uint64_t)modSeq DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to sync the last changes related to the given message list given a modSeq.
+
+ MCOIMAPFetchMessagesOperation * op = [session syncMessagesWithFolder:@"INBOX"
+ requestKind:MCOIMAPMessagesRequestKindUID
+ uids:MCORangeMake(1, UINT64_MAX)
+ modSeq:lastModSeq];
+ [op start:^(NSError * error, NSArray * messages, MCOIndexSet * vanishedMessages) {
+ NSLog(@"added or modified messages: %@", messages);
+ NSLog(@"deleted messages: %@", vanishedMessages);
+ }];
+
+@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 *) syncMessagesWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+ modSeq:(uint64_t)modSeq;
/**
Returns an operation to fetch the content of a message.
@@ -439,7 +534,7 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
*/
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
- urgent:(BOOL)urgent;
+ urgent:(BOOL)urgent DEPRECATED_ATTRIBUTE;
/**
Returns an operation to fetch the content of a message.
@@ -451,7 +546,59 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
}];
*/
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
- uid:(uint32_t)uid;
+ uid:(uint32_t)uid DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch the content of a message.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" uid:456 urgent:NO];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+ */
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch the content of a message.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" uid:456];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+ */
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid;
+
+/**
+ Returns an operation to fetch the content of a message, using IMAP sequence number.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" number:42 urgent:NO];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch the content of a message, using IMAP sequence number.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageOperationWithFolder:@"INBOX" number:42];
+ [op start:^(NSError * error, NSData * messageData) {
+ MCOMessageParser * parser = [MCOMessageParser messageParserWithData:messageData]
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number;
/** @name Fetching Attachment Operations */
@@ -472,7 +619,7 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
uid:(uint32_t)uid
partID:(NSString *)partID
encoding:(MCOEncoding)encoding
- urgent:(BOOL)urgent;
+ urgent:(BOOL)urgent DEPRECATED_ATTRIBUTE;
/**
Returns an operation to fetch an attachment.
@@ -500,7 +647,101 @@ vanishedMessages will be set only for servers that support QRESYNC. See [RFC5162
- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
partID:(NSString *)partID
- encoding:(MCOEncoding)encoding;
+ encoding:(MCOEncoding)encoding DEPRECATED_ATTRIBUTE;
+
+/**
+ Returns an operation to fetch an attachment.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64
+ urgent:YES];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch an attachment.
+
+ Example 1:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+
+ Example 2:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:[message uid]
+ partID:[part partID]
+ encoding:[part encoding]];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding;
+
+/**
+ Returns an operation to fetch an attachment.
+ @param urgent is set to YES, an additional connection to the same folder might be opened to fetch the content.
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ uid:456
+ partID:@"1.2"
+ encoding:MCOEncodingBase64
+ urgent:YES];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent;
+
+/**
+ Returns an operation to fetch an attachment.
+
+ Example 1:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ number:42
+ partID:@"1.2"
+ encoding:MCOEncodingBase64];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+
+ Example 2:
+
+ MCOIMAPFetchContentOperation * op = [session fetchMessageAttachmentOperationWithFolder:@"INBOX"
+ number:[message sequenceNumber]
+ partID:[part partID]
+ encoding:[part encoding]];
+ [op start:^(NSError * error, NSData * partData) {
+ ...
+ }];
+*/
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding;
/** @name General IMAP Actions */
diff --git a/src/objc/imap/MCOIMAPSession.mm b/src/objc/imap/MCOIMAPSession.mm
index dddb27fa..c7c389a4 100755
--- a/src/objc/imap/MCOIMAPSession.mm
+++ b/src/objc/imap/MCOIMAPSession.mm
@@ -285,6 +285,13 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
requestKind:(MCOIMAPMessagesRequestKind)requestKind
uids:(MCOIndexSet *)uids
{
+ return [self fetchMessagesOperationWithFolder:folder requestKind:requestKind uids:uids];
+}
+
+- (MCOIMAPFetchMessagesOperation *) fetchMessagesOperationWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+{
IMAPFetchMessagesOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessagesByUIDOperation([folder mco_mcString],
(IMAPMessagesRequestKind) requestKind,
MCO_FROM_OBJC(IndexSet, uids));
@@ -306,6 +313,14 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
uids:(MCOIndexSet *)uids
modSeq:(uint64_t)modSeq
{
+ return [self syncMessagesWithFolder:folder requestKind:requestKind uids:uids modSeq:modSeq];
+}
+
+- (MCOIMAPFetchMessagesOperation *) syncMessagesWithFolder:(NSString *)folder
+ requestKind:(MCOIMAPMessagesRequestKind)requestKind
+ uids:(MCOIndexSet *)uids
+ modSeq:(uint64_t)modSeq
+{
IMAPFetchMessagesOperation * coreOp = MCO_NATIVE_INSTANCE->syncMessagesByUID([folder mco_mcString],
(IMAPMessagesRequestKind) requestKind,
MCO_FROM_OBJC(IndexSet, uids),
@@ -317,14 +332,41 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
uid:(uint32_t)uid
urgent:(BOOL)urgent
{
- IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByUIDOperation([folder mco_mcString], uid, urgent);
- return MCO_TO_OBJC_OP(coreOp);
+ return [self fetchMessageOperationWithFolder:folder uid:uid urgent:urgent];
}
- (MCOIMAPFetchContentOperation *) fetchMessageByUIDOperationWithFolder:(NSString *)folder
uid:(uint32_t)uid
{
- return [self fetchMessageByUIDOperationWithFolder:folder uid:uid urgent:NO];
+ return [self fetchMessageOperationWithFolder:folder uid:uid];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByUIDOperation([folder mco_mcString], uid, urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+{
+ return [self fetchMessageOperationWithFolder:folder uid:uid urgent:NO];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageByNumberOperation([folder mco_mcString], number, urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+{
+ return [self fetchMessageOperationWithFolder:folder number:number urgent:NO];
}
- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
@@ -333,6 +375,30 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
encoding:(MCOEncoding)encoding
urgent:(BOOL)urgent
{
+ return [self fetchMessageAttachmentOperationWithFolder:folder
+ uid:uid
+ partID:partID
+ encoding:encoding
+ urgent:urgent];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+{
+ return [self fetchMessageAttachmentOperationWithFolder:folder
+ uid:uid
+ partID:partID
+ encoding:encoding];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent
+{
IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageAttachmentByUIDOperation([folder mco_mcString],
uid,
[partID mco_mcString],
@@ -341,12 +407,34 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
return MCO_TO_OBJC_OP(coreOp);
}
-- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentByUIDOperationWithFolder:(NSString *)folder
- uid:(uint32_t)uid
- partID:(NSString *)partID
- encoding:(MCOEncoding)encoding
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ uid:(uint32_t)uid
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+{
+ return [self fetchMessageAttachmentOperationWithFolder:folder uid:uid partID:partID encoding:encoding urgent:NO];
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
+ urgent:(BOOL)urgent
+{
+ IMAPFetchContentOperation * coreOp = MCO_NATIVE_INSTANCE->fetchMessageAttachmentByNumberOperation([folder mco_mcString],
+ number,
+ [partID mco_mcString],
+ (Encoding) encoding,
+ urgent);
+ return MCO_TO_OBJC_OP(coreOp);
+}
+
+- (MCOIMAPFetchContentOperation *) fetchMessageAttachmentOperationWithFolder:(NSString *)folder
+ number:(uint32_t)number
+ partID:(NSString *)partID
+ encoding:(MCOEncoding)encoding
{
- return [self fetchMessageAttachmentByUIDOperationWithFolder:folder uid:uid partID:partID encoding:encoding urgent:NO];
+ return [self fetchMessageAttachmentOperationWithFolder:folder number:number partID:partID encoding:encoding urgent:NO];
}
- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
@@ -363,11 +451,33 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
flags:(MCOMessageFlag)flags
customFlags:(NSArray *)customFlags
{
- IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsOperation([folder mco_mcString],
- MCO_FROM_OBJC(IndexSet, uids),
- (IMAPStoreFlagsRequestKind) kind,
- (MessageFlag) flags,
- MCO_FROM_OBJC(Array, customFlags));
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsByUIDOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, uids),
+ (IMAPStoreFlagsRequestKind) kind,
+ (MessageFlag) flags,
+ MCO_FROM_OBJC(Array, customFlags));
+ return OPAQUE_OPERATION(coreOp);
+}
+
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+{
+ return [self storeFlagsOperationWithFolder:folder numbers:numbers kind:kind flags:flags customFlags:NULL];
+}
+
+- (MCOIMAPOperation *) storeFlagsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ flags:(MCOMessageFlag)flags
+ customFlags:(NSArray *)customFlags
+{
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeFlagsByNumberOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, numbers),
+ (IMAPStoreFlagsRequestKind) kind,
+ (MessageFlag) flags,
+ MCO_FROM_OBJC(Array, customFlags));
return OPAQUE_OPERATION(coreOp);
}
@@ -376,10 +486,22 @@ MCO_OBJC_SYNTHESIZE_SCALAR(dispatch_queue_t, dispatch_queue_t, setDispatchQueue,
kind:(MCOIMAPStoreFlagsRequestKind)kind
labels:(NSArray *)labels
{
- IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsOperation([folder mco_mcString],
- MCO_FROM_OBJC(IndexSet, uids),
- (IMAPStoreFlagsRequestKind) kind,
- MCO_FROM_OBJC(Array, labels));
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsByUIDOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, uids),
+ (IMAPStoreFlagsRequestKind) kind,
+ MCO_FROM_OBJC(Array, labels));
+ return OPAQUE_OPERATION(coreOp);
+}
+
+- (MCOIMAPOperation *) storeLabelsOperationWithFolder:(NSString *)folder
+ numbers:(MCOIndexSet *)numbers
+ kind:(MCOIMAPStoreFlagsRequestKind)kind
+ labels:(NSArray *)labels
+{
+ IMAPOperation * coreOp = MCO_NATIVE_INSTANCE->storeLabelsByNumberOperation([folder mco_mcString],
+ MCO_FROM_OBJC(IndexSet, numbers),
+ (IMAPStoreFlagsRequestKind) kind,
+ MCO_FROM_OBJC(Array, labels));
return OPAQUE_OPERATION(coreOp);
}