aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPCopyMessagesOperation.cc
diff options
context:
space:
mode:
authorGravatar DINH Viet Hoa <hoa@sprw.me>2013-01-16 01:07:32 -0800
committerGravatar DINH Viet Hoa <hoa@sprw.me>2013-01-16 01:07:32 -0800
commite75be6c8b9a9b694e86c4054b4493f8ec405df2f (patch)
treec74257540dca069ece8178d2afa03a3ee45d7781 /src/async/imap/MCIMAPCopyMessagesOperation.cc
parent70f53398659fb9305f6bf88e33c84327c61829d5 (diff)
Implemented async IMAP
Diffstat (limited to 'src/async/imap/MCIMAPCopyMessagesOperation.cc')
-rw-r--r--src/async/imap/MCIMAPCopyMessagesOperation.cc75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/async/imap/MCIMAPCopyMessagesOperation.cc b/src/async/imap/MCIMAPCopyMessagesOperation.cc
new file mode 100644
index 00000000..b7321d97
--- /dev/null
+++ b/src/async/imap/MCIMAPCopyMessagesOperation.cc
@@ -0,0 +1,75 @@
+//
+// MCIMAPCopyMessagesOperation.cc
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/12/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#include "MCIMAPCopyMessagesOperation.h"
+
+#include "MCIMAPSession.h"
+#include "MCIMAPAsyncSession.h"
+
+using namespace mailcore;
+
+IMAPCopyMessagesOperation::IMAPCopyMessagesOperation()
+{
+ mFolder = NULL;
+ mUids = NULL;
+ mDestFolder = NULL;
+ mDestUids = NULL;
+}
+
+IMAPCopyMessagesOperation::~IMAPCopyMessagesOperation()
+{
+ MC_SAFE_RELEASE(mDestUids);
+ MC_SAFE_RELEASE(mFolder);
+ MC_SAFE_RELEASE(mUids);
+ MC_SAFE_RELEASE(mDestFolder);
+}
+
+void IMAPCopyMessagesOperation::setFolder(String * folder)
+{
+ MC_SAFE_REPLACE_COPY(String, mFolder, folder);
+}
+
+String * IMAPCopyMessagesOperation::folder()
+{
+ return mFolder;
+}
+
+void IMAPCopyMessagesOperation::setUids(Array * uids)
+{
+ MC_SAFE_REPLACE_RETAIN(Array, mUids, uids);
+}
+
+Array * IMAPCopyMessagesOperation::uids()
+{
+ return mUids;
+}
+
+Array * IMAPCopyMessagesOperation::destUids()
+{
+ return mDestUids;
+}
+
+void IMAPCopyMessagesOperation::setDestFolder(String * destFolder)
+{
+ MC_SAFE_REPLACE_COPY(String, mDestFolder, destFolder);
+}
+
+String * IMAPCopyMessagesOperation::destFolder()
+{
+ return mDestFolder;
+}
+
+void IMAPCopyMessagesOperation::main()
+{
+ ErrorCode error;
+ session()->session()->copyMessages(mFolder, mUids, mDestFolder, &mDestUids, &error);
+ if (mDestUids != NULL) {
+ mDestUids->retain();
+ }
+ setError(error);
+}