From 5915ca4e34d2192cb3ef06c8f47aaa4b16cf7f53 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Thu, 14 Nov 2013 23:17:40 +0100 Subject: Custom fetch attributes. --- src/net/maildir/maildirFolder.cpp | 11 ++++++----- src/net/maildir/maildirMessage.cpp | 26 +++++++++++++------------- 2 files changed, 19 insertions(+), 18 deletions(-) (limited to 'src/net/maildir') diff --git a/src/net/maildir/maildirFolder.cpp b/src/net/maildir/maildirFolder.cpp index 42a2c5ff..ae4c17e0 100644 --- a/src/net/maildir/maildirFolder.cpp +++ b/src/net/maildir/maildirFolder.cpp @@ -1178,7 +1178,7 @@ ref maildirFolder::getStore() void maildirFolder::fetchMessages(std::vector >& msg, - const int options, utility::progressListener* progress) + const fetchAttributes& options, utility::progressListener* progress) { ref store = m_store.acquire(); @@ -1209,7 +1209,7 @@ void maildirFolder::fetchMessages(std::vector >& msg, } -void maildirFolder::fetchMessage(ref msg, const int options) +void maildirFolder::fetchMessage(ref msg, const fetchAttributes& options) { ref store = m_store.acquire(); @@ -1225,9 +1225,10 @@ void maildirFolder::fetchMessage(ref msg, const int options) int maildirFolder::getFetchCapabilities() const { - return (FETCH_ENVELOPE | FETCH_STRUCTURE | FETCH_CONTENT_INFO | - FETCH_FLAGS | FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID | - FETCH_IMPORTANCE); + return fetchAttributes::ENVELOPE | fetchAttributes::STRUCTURE | + fetchAttributes::CONTENT_INFO | fetchAttributes::FLAGS | + fetchAttributes::SIZE | fetchAttributes::FULL_HEADER | + fetchAttributes::UID | fetchAttributes::IMPORTANCE; } diff --git a/src/net/maildir/maildirMessage.cpp b/src/net/maildir/maildirMessage.cpp index a7c2a22f..d20481d4 100644 --- a/src/net/maildir/maildirMessage.cpp +++ b/src/net/maildir/maildirMessage.cpp @@ -246,7 +246,7 @@ void maildirMessage::fetchPartHeader(ref p) } -void maildirMessage::fetch(ref msgFolder, const int options) +void maildirMessage::fetch(ref msgFolder, const fetchAttributes& options) { ref folder = m_folder.acquire(); @@ -258,18 +258,18 @@ void maildirMessage::fetch(ref msgFolder, const int options) const utility::file::path path = folder->getMessageFSPath(m_num); ref file = fsf->create(path); - if (options & folder::FETCH_FLAGS) + if (options.has(fetchAttributes::FLAGS)) m_flags = maildirUtils::extractFlags(path.getLastComponent()); - if (options & folder::FETCH_SIZE) + if (options.has(fetchAttributes::SIZE)) m_size = file->getLength(); - if (options & folder::FETCH_UID) + if (options.has(fetchAttributes::UID)) m_uid = maildirUtils::extractId(path.getLastComponent()).getBuffer(); - if (options & (folder::FETCH_ENVELOPE | folder::FETCH_CONTENT_INFO | - folder::FETCH_FULL_HEADER | folder::FETCH_STRUCTURE | - folder::FETCH_IMPORTANCE)) + if (options.has(fetchAttributes::ENVELOPE | fetchAttributes::CONTENT_INFO | + fetchAttributes::FULL_HEADER | fetchAttributes::STRUCTURE | + fetchAttributes::IMPORTANCE)) { string contents; @@ -277,7 +277,7 @@ void maildirMessage::fetch(ref msgFolder, const int options) ref is = reader->getInputStream(); // Need whole message contents for structure - if (options & folder::FETCH_STRUCTURE) + if (options.has(fetchAttributes::STRUCTURE)) { utility::stream::value_type buffer[16384]; @@ -321,16 +321,16 @@ void maildirMessage::fetch(ref msgFolder, const int options) msg.parse(contents); // Extract structure - if (options & folder::FETCH_STRUCTURE) + if (options.has(fetchAttributes::STRUCTURE)) { m_structure = vmime::create (null, msg); } // Extract some header fields or whole header - if (options & (folder::FETCH_ENVELOPE | - folder::FETCH_CONTENT_INFO | - folder::FETCH_FULL_HEADER | - folder::FETCH_IMPORTANCE)) + if (options.has(fetchAttributes::ENVELOPE | + fetchAttributes::CONTENT_INFO | + fetchAttributes::FULL_HEADER | + fetchAttributes::IMPORTANCE)) { getOrCreateHeader()->copyFrom(*(msg.getHeader())); } -- cgit