* Copyright 2013-2016, Axel DΓΆrfler, axeld@pinc-software.de.
* Distributed under the terms of the MIT License.
*/
*/
#include "IMAPMailbox.h"
IMAPMailbox::IMAPMailbox(IMAP::Protocol& protocol, const BString& mailboxName)
:
fProtocol(protocol),
fMailboxName(mailboxName)
{
}
IMAPMailbox::~IMAPMailbox()
{
}
void
IMAPMailbox::AddMessageEntry(uint32 index, uint32 uid, uint32 flags,
uint32 size)
{
fMessageEntries.insert(
std::make_pair(uid, MessageFlagsAndSize(flags, size)));
fUIDs.reserve(index + 1);
fUIDs[index] = uid;
}
void
IMAPMailbox::RemoveMessageEntry(uint32 index)
{
if (index >= fUIDs.size())
return;
uint32 uid = fUIDs[index];
fMessageEntries.erase(uid);
fUIDs.erase(fUIDs.begin() + index);
}
uint32
IMAPMailbox::UIDForIndex(uint32 index) const
{
if (index >= fUIDs.size())
return 0;
return fUIDs[index];
}
uint32
IMAPMailbox::MessageFlags(uint32 uid) const
{
MessageEntryMap::const_iterator found = fMessageEntries.find(uid);
if (found == fMessageEntries.end())
return 0;
return found->second.flags;
}
uint32
IMAPMailbox::MessageSize(uint32 uid) const
{
MessageEntryMap::const_iterator found = fMessageEntries.find(uid);
if (found == fMessageEntries.end())
return 0;
return found->second.size;
}
uint32
IMAPMailbox::MessageAdded(const MessageToken& fromToken, const entry_ref& ref)
{
printf("IMAP: message added %s, uid %" B_PRIu32 "\n", ref.name,
fromToken.uid);
return fromToken.uid;
}
void
IMAPMailbox::MessageDeleted(const MessageToken& token)
{
printf("IMAP: message deleted, uid %" B_PRIu32 "\n", token.uid);
}
void
IMAPMailbox::MessageFlagsChanged(const MessageToken& token,
const entry_ref& ref, uint32 oldFlags, uint32 newFlags)
{
printf("IMAP: flags changed %s, uid %" B_PRIu32 ", from %" B_PRIx32 " to %"
B_PRIx32 "\n", ref.name, token.uid, oldFlags, newFlags);
}