diff options
Diffstat (limited to 'src/async/imap/MCIMAPFolderStatusOperation.cpp')
-rw-r--r-- | src/async/imap/MCIMAPFolderStatusOperation.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/async/imap/MCIMAPFolderStatusOperation.cpp b/src/async/imap/MCIMAPFolderStatusOperation.cpp new file mode 100644 index 00000000..22f2797b --- /dev/null +++ b/src/async/imap/MCIMAPFolderStatusOperation.cpp @@ -0,0 +1,51 @@ +// +// MCIMAPFolderStatusOperation.cc +// mailcore2 +// +// Created by Sebastian on 6/5/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#include "MCIMAPFolderStatusOperation.h" + +#include "MCIMAPSession.h" +#include "MCIMAPAsyncConnection.h" +#include "MCIMAPFolderStatus.h" + +using namespace mailcore; + +IMAPFolderStatusOperation::IMAPFolderStatusOperation() +{ + mStatus = NULL; +} + +IMAPFolderStatusOperation::~IMAPFolderStatusOperation() +{ + MC_SAFE_RELEASE(mStatus); +} + +void IMAPFolderStatusOperation::main() +{ + ErrorCode error; + + session()->session()->loginIfNeeded(&error); + if (error != ErrorNone) { + setError(error); + return; + } + + IMAPFolderStatus *status = session()->session()->folderStatus(folder(), &error); + if (error != ErrorNone) { + setError(error); + return; + } + + MC_SAFE_REPLACE_RETAIN(IMAPFolderStatus, mStatus, status); + setError(error); +} + +IMAPFolderStatus * IMAPFolderStatusOperation::status() +{ + return mStatus; +} + |