diff options
Diffstat (limited to 'src/async/imap/MCIMAPMoveMessagesOperation.cpp')
-rw-r--r-- | src/async/imap/MCIMAPMoveMessagesOperation.cpp | 61 |
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); +} |