aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPMoveMessagesOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/imap/MCIMAPMoveMessagesOperation.cpp')
-rw-r--r--src/async/imap/MCIMAPMoveMessagesOperation.cpp61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/async/imap/MCIMAPMoveMessagesOperation.cpp b/src/async/imap/MCIMAPMoveMessagesOperation.cpp
new file mode 100644
index 00000000..cc8de937
--- /dev/null
+++ b/src/async/imap/MCIMAPMoveMessagesOperation.cpp
@@ -0,0 +1,61 @@
+//
+// IMAPMoveMessagesOperation.cpp
+// mailcore2
+//
+// Created by Nikolay Morev on 02/02/16.
+// Copyright © 2016 MailCore. All rights reserved.
+//
+
+#include "MCIMAPMoveMessagesOperation.h"
+
+#include "MCIMAPSession.h"
+#include "MCIMAPAsyncConnection.h"
+
+using namespace mailcore;
+
+IMAPMoveMessagesOperation::IMAPMoveMessagesOperation()
+{
+ mUids = NULL;
+ mDestFolder = NULL;
+ mUidMapping = NULL;
+}
+
+IMAPMoveMessagesOperation::~IMAPMoveMessagesOperation()
+{
+ MC_SAFE_RELEASE(mUidMapping);
+ MC_SAFE_RELEASE(mUids);
+ MC_SAFE_RELEASE(mDestFolder);
+}
+
+void IMAPMoveMessagesOperation::setUids(IndexSet * uids)
+{
+ MC_SAFE_REPLACE_RETAIN(IndexSet, mUids, uids);
+}
+
+IndexSet * IMAPMoveMessagesOperation::uids()
+{
+ return mUids;
+}
+
+HashMap * IMAPMoveMessagesOperation::uidMapping()
+{
+ return mUidMapping;
+}
+
+void IMAPMoveMessagesOperation::setDestFolder(String * destFolder)
+{
+ MC_SAFE_REPLACE_COPY(String, mDestFolder, destFolder);
+}
+
+String * IMAPMoveMessagesOperation::destFolder()
+{
+ return mDestFolder;
+}
+
+void IMAPMoveMessagesOperation::main()
+{
+ ErrorCode error;
+ session()->session()->moveMessages(folder(), mUids, mDestFolder, &mUidMapping, &error);
+ MC_SAFE_RETAIN(mUidMapping);
+ setError(error);
+}