Added FETCH_IMPORTANCE flag.

This commit is contained in:
Vincent Richard 2005-07-25 11:08:34 +00:00
parent 67eef25151
commit bd925cef1c
8 changed files with 46 additions and 11 deletions

View File

@ -2,6 +2,11 @@
VERSION 0.7.2cvs
================
2005-07-25 Vincent Richard <vincent@vincent-richard.net>
* Messaging folder: added a FETCH_IMPORTANCE flag to fetch the fields used
with 'misc::importanceHelper'.
2005-07-23 Vincent Richard <vincent@vincent-richard.net>
* POP3, IMAP, maildir: fixed getMessages() when default arguments are given:

View File

@ -643,7 +643,8 @@ void IMAPFolder::fetchMessage(ref <message> msg, const int options)
const int IMAPFolder::getFetchCapabilities() const
{
return (FETCH_ENVELOPE | FETCH_CONTENT_INFO | FETCH_STRUCTURE |
FETCH_FLAGS | FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID);
FETCH_FLAGS | FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID |
FETCH_IMPORTANCE);
}

View File

@ -492,8 +492,32 @@ void IMAPMessage::fetch(IMAPFolder* folder, const int options)
if (options & folder::FETCH_ENVELOPE)
items.push_back("ENVELOPE");
std::vector <string> headerFields;
if (options & folder::FETCH_CONTENT_INFO)
items.push_back("BODY[HEADER.FIELDS (CONTENT-TYPE)]");
headerFields.push_back("CONTENT_TYPE");
if (options & folder::FETCH_IMPORTANCE)
{
headerFields.push_back("IMPORTANCE");
headerFields.push_back("X-PRIORITY");
}
if (!headerFields.empty())
{
string list;
for (std::vector <string>::iterator it = headerFields.begin() ;
it != headerFields.end() ; ++it)
{
if (it != headerFields.begin())
list += " ";
list += *it;
}
items.push_back("BODY[HEADER.FIELDS (" + list + ")]");
}
}
// Build the request text

View File

@ -1368,7 +1368,8 @@ void maildirFolder::fetchMessage(ref <message> msg, const int options)
const int maildirFolder::getFetchCapabilities() const
{
return (FETCH_ENVELOPE | FETCH_STRUCTURE | FETCH_CONTENT_INFO |
FETCH_FLAGS | FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID);
FETCH_FLAGS | FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID |
FETCH_IMPORTANCE);
}

View File

@ -421,7 +421,8 @@ void maildirMessage::fetch(weak_ref <maildirFolder> folder, const int options)
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_FULL_HEADER | folder::FETCH_STRUCTURE |
folder::FETCH_IMPORTANCE))
{
string contents;
@ -481,7 +482,8 @@ void maildirMessage::fetch(weak_ref <maildirFolder> folder, const int options)
// Extract some header fields or whole header
if (options & (folder::FETCH_ENVELOPE |
folder::FETCH_CONTENT_INFO |
folder::FETCH_FULL_HEADER))
folder::FETCH_FULL_HEADER |
folder::FETCH_IMPORTANCE))
{
getOrCreateHeader()->copyFrom(*(msg.getHeader()));
}

View File

@ -476,7 +476,8 @@ void POP3Folder::fetchMessage(ref <message> msg, const int options)
const int POP3Folder::getFetchCapabilities() const
{
return (FETCH_ENVELOPE | FETCH_CONTENT_INFO |
FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID);
FETCH_SIZE | FETCH_FULL_HEADER | FETCH_UID |
FETCH_IMPORTANCE);
}

View File

@ -170,12 +170,12 @@ void POP3Message::fetch(POP3Folder* folder, const int options)
throw exceptions::operation_not_supported();
// Check for the real need to fetch the full header
if (!((options & folder::FETCH_ENVELOPE) ||
(options & folder::FETCH_CONTENT_INFO) ||
(options & folder::FETCH_FULL_HEADER)))
{
static const int optionsRequiringHeader =
folder::FETCH_ENVELOPE | folder::FETCH_CONTENT_INFO |
folder::FETCH_FULL_HEADER | folder::FETCH_IMPORTANCE;
if (!(options & optionsRequiringHeader))
return;
}
// No need to differenciate between FETCH_ENVELOPE,
// FETCH_CONTENT_INFO, ... since POP3 only permits to

View File

@ -321,6 +321,7 @@ public:
FETCH_SIZE = (1 << 4), /**< Fetch message size (exact or estimated). */
FETCH_FULL_HEADER = (1 << 5), /**< Fetch full RFC-[2]822 header. */
FETCH_UID = (1 << 6), /**< Fetch unique identifier (protocol specific). */
FETCH_IMPORTANCE = (1 << 7), /**< Fetch header fields suitable for use with misc::importanceHelper. */
FETCH_CUSTOM = (1 << 16) /**< Reserved for future use. */
};