aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async
diff options
context:
space:
mode:
Diffstat (limited to 'src/async')
-rw-r--r--src/async/imap/MCIMAPAppendMessageOperation.cc14
-rw-r--r--src/async/imap/MCIMAPAppendMessageOperation.h4
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncConnection.cc17
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncConnection.h5
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.cc14
-rwxr-xr-xsrc/async/imap/MCIMAPAsyncSession.h5
-rw-r--r--src/async/imap/MCIMAPStoreFlagsOperation.cc2
-rw-r--r--src/async/imap/MCIMAPStoreFlagsOperation.h1
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;
-
};
}