aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/imap/MCIMAPMessage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/imap/MCIMAPMessage.cc')
-rw-r--r--src/core/imap/MCIMAPMessage.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/core/imap/MCIMAPMessage.cc b/src/core/imap/MCIMAPMessage.cc
index 6cb1472c..7f393f32 100644
--- a/src/core/imap/MCIMAPMessage.cc
+++ b/src/core/imap/MCIMAPMessage.cc
@@ -16,6 +16,7 @@ static AbstractPart * partForPartIDInMessagePart(AbstractMessagePart * part, Str
void IMAPMessage::init()
{
mUid = 0;
+ mSequenceNumber = 0;
mFlags = MessageFlagNone;
mOriginalFlags = MessageFlagNone;
mCustomFlags = NULL;
@@ -35,6 +36,7 @@ IMAPMessage::IMAPMessage(IMAPMessage * other) : AbstractMessage(other)
{
init();
setUid(other->uid());
+ setSequenceNumber(other->sequenceNumber());
setFlags(other->flags());
setOriginalFlags(other->originalFlags());
setCustomFlags(other->customFlags());
@@ -59,7 +61,7 @@ Object * IMAPMessage::copy()
String * IMAPMessage::description()
{
String * result = String::string();
- result->appendUTF8Format("<%s:%p %u\n", className()->UTF8Characters(), this, (unsigned int) uid());
+ result->appendUTF8Format("<%s:%p %u %u\n", className()->UTF8Characters(), this, (unsigned int) uid(), (unsigned int) sequenceNumber());
result->appendString(header()->description());
if (mainPart() != NULL) {
result->appendString(mainPart()->description());
@@ -79,6 +81,16 @@ void IMAPMessage::setUid(uint32_t uid)
mUid = uid;
}
+uint32_t IMAPMessage::sequenceNumber()
+{
+ return mSequenceNumber;
+}
+
+void IMAPMessage::setSequenceNumber(uint32_t value)
+{
+ mSequenceNumber = value;
+}
+
uint32_t IMAPMessage::size()
{
return mSize;
@@ -235,6 +247,7 @@ String * IMAPMessage::htmlRendering(String * folder,
HashMap * IMAPMessage::serializable()
{
+ // sequenceNumber is not serialized.
HashMap * result = AbstractMessage::serializable();
result->setObjectForKey(MCSTR("modSeqValue"), String::stringWithUTF8Format("%llu", (long long unsigned) modSeqValue()));
result->setObjectForKey(MCSTR("uid"), String::stringWithUTF8Format("%lu", (long unsigned) uid()));
@@ -261,6 +274,7 @@ HashMap * IMAPMessage::serializable()
void IMAPMessage::importSerializable(HashMap * serializable)
{
+ // sequenceNumber is not serialized.
AbstractMessage::importSerializable(serializable);
String * modSeq = (String *) serializable->objectForKey(MCSTR("modSeqValue"));
if (modSeq != NULL) {