From e75be6c8b9a9b694e86c4054b4493f8ec405df2f Mon Sep 17 00:00:00 2001 From: DINH Viet Hoa Date: Wed, 16 Jan 2013 01:07:32 -0800 Subject: Implemented async IMAP --- src/async/imap/MCIMAPCopyMessagesOperation.cc | 75 +++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/async/imap/MCIMAPCopyMessagesOperation.cc (limited to 'src/async/imap/MCIMAPCopyMessagesOperation.cc') 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); +} -- cgit v1.2.3