diff options
Diffstat (limited to 'src/async')
-rw-r--r-- | src/async/imap/MCIMAPAppendMessageOperation.cc | 14 | ||||
-rw-r--r-- | src/async/imap/MCIMAPAppendMessageOperation.h | 4 | ||||
-rwxr-xr-x | src/async/imap/MCIMAPAsyncConnection.cc | 17 | ||||
-rwxr-xr-x | src/async/imap/MCIMAPAsyncConnection.h | 5 | ||||
-rwxr-xr-x | src/async/imap/MCIMAPAsyncSession.cc | 14 | ||||
-rwxr-xr-x | src/async/imap/MCIMAPAsyncSession.h | 5 | ||||
-rw-r--r-- | src/async/imap/MCIMAPStoreFlagsOperation.cc | 2 | ||||
-rw-r--r-- | src/async/imap/MCIMAPStoreFlagsOperation.h | 1 |
8 files changed, 29 insertions, 33 deletions
diff --git a/src/async/imap/MCIMAPAppendMessageOperation.cc b/src/async/imap/MCIMAPAppendMessageOperation.cc index 0a205a2d..06a42b2d 100644 --- a/src/async/imap/MCIMAPAppendMessageOperation.cc +++ b/src/async/imap/MCIMAPAppendMessageOperation.cc @@ -17,12 +17,14 @@ IMAPAppendMessageOperation::IMAPAppendMessageOperation() { mMessageData = NULL; mFlags = MessageFlagNone; + mCustomFlags = NULL; mCreatedUID = 0; } IMAPAppendMessageOperation::~IMAPAppendMessageOperation() { MC_SAFE_RELEASE(mMessageData); + MC_SAFE_RELEASE(mCustomFlags); } void IMAPAppendMessageOperation::setMessageData(Data * messageData) @@ -45,6 +47,16 @@ MessageFlag IMAPAppendMessageOperation::flags() return mFlags; } +void IMAPAppendMessageOperation::setCustomFlags(Array * customFlags) +{ + MC_SAFE_REPLACE_COPY(Array, mCustomFlags, customFlags); +} + +Array * IMAPAppendMessageOperation::customFlags() +{ + return customFlags(); +} + uint32_t IMAPAppendMessageOperation::createdUID() { return mCreatedUID; @@ -53,7 +65,7 @@ uint32_t IMAPAppendMessageOperation::createdUID() void IMAPAppendMessageOperation::main() { ErrorCode error; - session()->session()->appendMessage(folder(), mMessageData, mFlags, this, &mCreatedUID, &error); + session()->session()->appendMessageWithCustomFlags(folder(), mMessageData, mFlags, mCustomFlags, this, &mCreatedUID, &error); setError(error); } diff --git a/src/async/imap/MCIMAPAppendMessageOperation.h b/src/async/imap/MCIMAPAppendMessageOperation.h index 4f210ac8..de6960de 100644 --- a/src/async/imap/MCIMAPAppendMessageOperation.h +++ b/src/async/imap/MCIMAPAppendMessageOperation.h @@ -28,6 +28,9 @@ namespace mailcore { virtual void setFlags(MessageFlag flags); virtual MessageFlag flags(); + virtual void setCustomFlags(Array * customFlags); + virtual Array * customFlags(); + virtual uint32_t createdUID(); public: // subclass behavior @@ -36,6 +39,7 @@ namespace mailcore { private: Data * mMessageData; MessageFlag mFlags; + Array * mCustomFlags; uint32_t mCreatedUID; }; diff --git a/src/async/imap/MCIMAPAsyncConnection.cc b/src/async/imap/MCIMAPAsyncConnection.cc index 30d2f9be..738da0d1 100755 --- a/src/async/imap/MCIMAPAsyncConnection.cc +++ b/src/async/imap/MCIMAPAsyncConnection.cc @@ -327,13 +327,14 @@ IMAPOperation * IMAPAsyncConnection::unsubscribeFolderOperation(String * folder) return op; } -IMAPAppendMessageOperation * IMAPAsyncConnection::appendMessageOperation(String * folder, Data * messageData, MessageFlag flags) +IMAPAppendMessageOperation * IMAPAsyncConnection::appendMessageOperation(String * folder, Data * messageData, MessageFlag flags, Array * customFlags) { IMAPAppendMessageOperation * op = new IMAPAppendMessageOperation(); op->setSession(this); op->setFolder(folder); op->setMessageData(messageData); op->setFlags(flags); + op->setCustomFlags(customFlags); op->autorelease(); return op; } @@ -420,19 +421,7 @@ IMAPFetchContentOperation * IMAPAsyncConnection::fetchMessageAttachmentByUIDOper return op; } -IMAPOperation * IMAPAsyncConnection::storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags) -{ - IMAPStoreFlagsOperation * op = new IMAPStoreFlagsOperation(); - op->setSession(this); - op->setFolder(folder); - op->setUids(uids); - op->setKind(kind); - op->setFlags(flags); - op->autorelease(); - return op; -} - -IMAPOperation * IMAPAsyncConnection::storeAllFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags) +IMAPOperation * IMAPAsyncConnection::storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags) { IMAPStoreFlagsOperation * op = new IMAPStoreFlagsOperation(); op->setSession(this); diff --git a/src/async/imap/MCIMAPAsyncConnection.h b/src/async/imap/MCIMAPAsyncConnection.h index c2734aff..0a117bea 100755 --- a/src/async/imap/MCIMAPAsyncConnection.h +++ b/src/async/imap/MCIMAPAsyncConnection.h @@ -99,7 +99,7 @@ namespace mailcore { virtual IMAPOperation * subscribeFolderOperation(String * folder); virtual IMAPOperation * unsubscribeFolderOperation(String * folder); - virtual IMAPAppendMessageOperation * appendMessageOperation(String * folder, Data * messageData, MessageFlag flags); + virtual IMAPAppendMessageOperation * appendMessageOperation(String * folder, Data * messageData, MessageFlag flags, Array * customFlags); virtual IMAPCopyMessagesOperation * copyMessagesOperation(String * folder, IndexSet * uids, String * destFolder); @@ -116,8 +116,7 @@ namespace mailcore { virtual IMAPFetchContentOperation * fetchMessageAttachmentByUIDOperation(String * folder, uint32_t uid, String * partID, Encoding encoding); - virtual IMAPOperation * storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags); - virtual IMAPOperation * storeAllFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags); + virtual IMAPOperation * storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags); virtual IMAPOperation * storeLabelsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels); virtual IMAPSearchOperation * searchOperation(String * folder, IMAPSearchKind kind, String * searchString); diff --git a/src/async/imap/MCIMAPAsyncSession.cc b/src/async/imap/MCIMAPAsyncSession.cc index 9cb7992a..44f753c9 100755 --- a/src/async/imap/MCIMAPAsyncSession.cc +++ b/src/async/imap/MCIMAPAsyncSession.cc @@ -366,10 +366,10 @@ IMAPOperation * IMAPAsyncSession::unsubscribeFolderOperation(String * folder) return session->unsubscribeFolderOperation(folder); } -IMAPAppendMessageOperation * IMAPAsyncSession::appendMessageOperation(String * folder, Data * messageData, MessageFlag flags) +IMAPAppendMessageOperation * IMAPAsyncSession::appendMessageOperation(String * folder, Data * messageData, MessageFlag flags, Array * customFlags) { IMAPAsyncConnection * session = sessionForFolder(folder); - return session->appendMessageOperation(folder, messageData, flags); + return session->appendMessageOperation(folder, messageData, flags, customFlags); } IMAPCopyMessagesOperation * IMAPAsyncSession::copyMessagesOperation(String * folder, IndexSet * uids, String * destFolder) @@ -418,16 +418,10 @@ IMAPFetchContentOperation * IMAPAsyncSession::fetchMessageAttachmentByUIDOperati return session->fetchMessageAttachmentByUIDOperation(folder, uid, partID, encoding); } -IMAPOperation * IMAPAsyncSession::storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags) +IMAPOperation * IMAPAsyncSession::storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags) { IMAPAsyncConnection * session = sessionForFolder(folder); - return session->storeFlagsOperation(folder, uids, kind, flags); -} - -IMAPOperation * IMAPAsyncSession::storeAllFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags) -{ - IMAPAsyncConnection * session = sessionForFolder(folder); - return session->storeAllFlagsOperation(folder, uids, kind, flags, customFlags); + return session->storeFlagsOperation(folder, uids, kind, flags, customFlags); } IMAPOperation * IMAPAsyncSession::storeLabelsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels) diff --git a/src/async/imap/MCIMAPAsyncSession.h b/src/async/imap/MCIMAPAsyncSession.h index f81e6306..bd06d6a3 100755 --- a/src/async/imap/MCIMAPAsyncSession.h +++ b/src/async/imap/MCIMAPAsyncSession.h @@ -115,7 +115,7 @@ namespace mailcore { virtual IMAPOperation * subscribeFolderOperation(String * folder); virtual IMAPOperation * unsubscribeFolderOperation(String * folder); - virtual IMAPAppendMessageOperation * appendMessageOperation(String * folder, Data * messageData, MessageFlag flags); + virtual IMAPAppendMessageOperation * appendMessageOperation(String * folder, Data * messageData, MessageFlag flags, Array * customFlags); virtual IMAPCopyMessagesOperation * copyMessagesOperation(String * folder, IndexSet * uids, String * destFolder); @@ -132,8 +132,7 @@ namespace mailcore { virtual IMAPFetchContentOperation * fetchMessageAttachmentByUIDOperation(String * folder, uint32_t uid, String * partID, Encoding encoding, bool urgent = false); - virtual IMAPOperation * storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags); - virtual IMAPOperation * storeAllFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags); + virtual IMAPOperation * storeFlagsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, MessageFlag flags, Array * customFlags); virtual IMAPOperation * storeLabelsOperation(String * folder, IndexSet * uids, IMAPStoreFlagsRequestKind kind, Array * labels); virtual IMAPSearchOperation * searchOperation(String * folder, IMAPSearchKind kind, String * searchString); diff --git a/src/async/imap/MCIMAPStoreFlagsOperation.cc b/src/async/imap/MCIMAPStoreFlagsOperation.cc index e2e2bfe9..df68529a 100644 --- a/src/async/imap/MCIMAPStoreFlagsOperation.cc +++ b/src/async/imap/MCIMAPStoreFlagsOperation.cc @@ -70,6 +70,6 @@ Array * IMAPStoreFlagsOperation::customFlags() void IMAPStoreFlagsOperation::main() { ErrorCode error; - session()->session()->storeFlags(folder(), mUids, mKind, mFlags, mCustomFlags, &error); + session()->session()->storeFlagsAndCustomFlags(folder(), mUids, mKind, mFlags, mCustomFlags, &error); setError(error); } diff --git a/src/async/imap/MCIMAPStoreFlagsOperation.h b/src/async/imap/MCIMAPStoreFlagsOperation.h index d908baf5..c1b17db5 100644 --- a/src/async/imap/MCIMAPStoreFlagsOperation.h +++ b/src/async/imap/MCIMAPStoreFlagsOperation.h @@ -41,7 +41,6 @@ namespace mailcore { IMAPStoreFlagsRequestKind mKind; MessageFlag mFlags; Array * mCustomFlags; - }; } |