From 54084253e62941d641061b9db0af7ea607a910bd Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Tue, 16 Jul 2013 11:07:16 +0200 Subject: Added basic support for IMAP CONDSTORE extension. Process CAPABILITY in IMAP greeting response. Renamed getUniqueId() to getUID() for consistency. --- src/net/maildir/maildirFolder.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'src/net/maildir/maildirFolder.cpp') diff --git a/src/net/maildir/maildirFolder.cpp b/src/net/maildir/maildirFolder.cpp index aa886ff3..3ea1093e 100644 --- a/src/net/maildir/maildirFolder.cpp +++ b/src/net/maildir/maildirFolder.cpp @@ -33,6 +33,7 @@ #include "vmime/net/maildir/maildirMessage.hpp" #include "vmime/net/maildir/maildirUtils.hpp" #include "vmime/net/maildir/maildirFormat.hpp" +#include "vmime/net/maildir/maildirFolderStatus.hpp" #include "vmime/utility/smartPtr.hpp" @@ -1162,6 +1163,18 @@ void maildirFolder::notifyMessagesCopied(const folder::path& dest) void maildirFolder::status(int& count, int& unseen) +{ + count = 0; + unseen = 0; + + ref status = getStatus(); + + count = status->getMessageCount(); + unseen = status->getUnseenCount(); +} + + +ref maildirFolder::getStatus() { ref store = m_store.acquire(); @@ -1169,16 +1182,18 @@ void maildirFolder::status(int& count, int& unseen) scanFolder(); - count = m_messageCount; - unseen = m_unreadMessageCount; + ref status = vmime::create (); + + status->setMessageCount(m_messageCount); + status->setUnseenCount(m_unreadMessageCount); // Notify message count changed (new messages) - if (count > oldCount) + if (m_messageCount > oldCount) { std::vector nums; - nums.reserve(count - oldCount); + nums.reserve(m_messageCount - oldCount); - for (int i = oldCount + 1, j = 0 ; i <= count ; ++i, ++j) + for (int i = oldCount + 1, j = 0 ; i <= m_messageCount ; ++i, ++j) nums[j] = i; events::messageCountEvent event @@ -1207,6 +1222,8 @@ void maildirFolder::status(int& count, int& unseen) } } } + + return status; } -- cgit