aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPFolderStatusOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/imap/MCIMAPFolderStatusOperation.cpp')
-rw-r--r--src/async/imap/MCIMAPFolderStatusOperation.cpp51
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;
+}
+