aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/async/imap/MCIMAPFolderInfoOperation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/async/imap/MCIMAPFolderInfoOperation.cpp')
-rw-r--r--src/async/imap/MCIMAPFolderInfoOperation.cpp86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/async/imap/MCIMAPFolderInfoOperation.cpp b/src/async/imap/MCIMAPFolderInfoOperation.cpp
new file mode 100644
index 00000000..0ea0d005
--- /dev/null
+++ b/src/async/imap/MCIMAPFolderInfoOperation.cpp
@@ -0,0 +1,86 @@
+//
+// MCIMAPFolderInfoOperation.cc
+// mailcore2
+//
+// Created by DINH Viêt Hoà on 1/13/13.
+// Copyright (c) 2013 MailCore. All rights reserved.
+//
+
+#include "MCIMAPFolderInfoOperation.h"
+
+#include "MCIMAPSession.h"
+#include "MCIMAPAsyncConnection.h"
+
+using namespace mailcore;
+
+IMAPFolderInfoOperation::IMAPFolderInfoOperation()
+{
+ mUidNext = 0;
+ mUidValidity = 0;
+ mMessageCount = 0;
+ mModSequenceValue = 0;
+ mFirstUnseenUid = 0;
+ mAllowsNewPermanentFlags = false;
+}
+
+IMAPFolderInfoOperation::~IMAPFolderInfoOperation()
+{
+}
+
+uint32_t IMAPFolderInfoOperation::uidNext()
+{
+ return mUidNext;
+}
+
+uint32_t IMAPFolderInfoOperation::uidValidity()
+{
+ return mUidValidity;
+}
+
+uint64_t IMAPFolderInfoOperation::modSequenceValue()
+{
+ return mModSequenceValue;
+}
+
+int IMAPFolderInfoOperation::messageCount()
+{
+ return mMessageCount;
+}
+
+uint32_t IMAPFolderInfoOperation::firstUnseenUid()
+{
+ return mFirstUnseenUid;
+}
+
+bool IMAPFolderInfoOperation::allowsNewPermanentFlags()
+{
+ return mAllowsNewPermanentFlags;
+}
+
+void IMAPFolderInfoOperation::main()
+{
+ ErrorCode error;
+
+ session()->session()->loginIfNeeded(&error);
+ if (error != ErrorNone) {
+ setError(error);
+ return;
+ }
+
+ session()->session()->select(folder(), &error);
+ if (error != ErrorNone) {
+ setError(error);
+ return;
+ }
+
+
+ mUidNext = session()->session()->uidNext();
+ mUidValidity = session()->session()->uidValidity();
+ mModSequenceValue = session()->session()->modSequenceValue();
+ mMessageCount = session()->session()->lastFolderMessageCount();
+ mFirstUnseenUid = session()->session()->firstUnseenUid();
+ mAllowsNewPermanentFlags = session()->session()->allowsNewPermanentFlags();
+
+ setError(error);
+}
+