aboutsummaryrefslogtreecommitdiffstats
path: root/src/messaging/maildirMessage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/messaging/maildirMessage.cpp')
-rw-r--r--src/messaging/maildirMessage.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/messaging/maildirMessage.cpp b/src/messaging/maildirMessage.cpp
index 4d561f25..12ac8cdf 100644
--- a/src/messaging/maildirMessage.cpp
+++ b/src/messaging/maildirMessage.cpp
@@ -30,7 +30,8 @@ namespace messaging {
maildirMessage::maildirMessage(maildirFolder* folder, const int num)
- : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED)
+ : m_folder(folder), m_num(num), m_size(-1), m_flags(FLAG_UNDEFINED),
+ m_expunged(false)
{
m_folder->registerMessage(this);
}
@@ -57,7 +58,7 @@ const int maildirMessage::getNumber() const
const message::uid maildirMessage::getUniqueId() const
{
- // TODO
+ return (m_uid);
}
@@ -72,7 +73,7 @@ const int maildirMessage::getSize() const
const bool maildirMessage::isExpunged() const
{
- // TODO
+ return (m_expunged);
}
@@ -105,7 +106,10 @@ const int maildirMessage::getFlags() const
void maildirMessage::setFlags(const int flags, const int mode)
{
- // TODO
+ if (!m_folder)
+ throw exceptions::folder_not_found();
+
+ m_folder->setMessageFlags(m_num, m_num, flags, mode);
}
@@ -144,7 +148,6 @@ void maildirMessage::fetch(maildirFolder* folder, const int options)
TODO: FETCH_STRUCTURE
TODO: FETCH_CONTENT_INFO
TODO: FETCH_FULL_HEADER
- TODO: FETCH_UID
*/
if (options & folder::FETCH_FLAGS)
@@ -152,6 +155,9 @@ void maildirMessage::fetch(maildirFolder* folder, const int options)
if (options & folder::FETCH_SIZE)
m_size = file->length();
+
+ if (options & folder::FETCH_UID)
+ m_uid = maildirUtils::extractId(path.getLastComponent()).getBuffer();
}