diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-12-06 23:39:47 +0100 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-12-06 23:39:47 +0100 |
commit | 642032029f65e9dc0d38fbb6d35ef656c73a292c (patch) | |
tree | 78a22bd12d679ab532db490d631ee69fa085aec1 /mailnews/imap/src/nsImapFlagAndUidState.h | |
parent | 50ef259a2df60d020ccb02d76dc5aa4835ee319e (diff) | |
parent | 2529b2edece0a0ed86553d1e73eef13c3848bf64 (diff) | |
download | UXP-642032029f65e9dc0d38fbb6d35ef656c73a292c.tar UXP-642032029f65e9dc0d38fbb6d35ef656c73a292c.tar.gz UXP-642032029f65e9dc0d38fbb6d35ef656c73a292c.tar.lz UXP-642032029f65e9dc0d38fbb6d35ef656c73a292c.tar.xz UXP-642032029f65e9dc0d38fbb6d35ef656c73a292c.zip |
Merge branch 'master' into release
Diffstat (limited to 'mailnews/imap/src/nsImapFlagAndUidState.h')
-rw-r--r-- | mailnews/imap/src/nsImapFlagAndUidState.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mailnews/imap/src/nsImapFlagAndUidState.h b/mailnews/imap/src/nsImapFlagAndUidState.h new file mode 100644 index 000000000..259bc016f --- /dev/null +++ b/mailnews/imap/src/nsImapFlagAndUidState.h @@ -0,0 +1,55 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef nsImapFlagAndUidState_h___ +#define nsImapFlagAndUidState_h___ + +#include "MailNewsTypes.h" +#include "nsTArray.h" +#include "nsIImapFlagAndUidState.h" +#include "mozilla/Mutex.h" + +const int32_t kImapFlagAndUidStateSize = 100; + +#include "nsBaseHashtable.h" +#include "nsDataHashtable.h" + +class nsImapFlagAndUidState : public nsIImapFlagAndUidState +{ +public: + NS_DECL_THREADSAFE_ISUPPORTS + explicit nsImapFlagAndUidState(int numberOfMessages); + + NS_DECL_NSIIMAPFLAGANDUIDSTATE + + int32_t NumberOfDeletedMessages(); + + imapMessageFlagsType GetMessageFlagsFromUID(uint32_t uid, bool *foundIt, int32_t *ndx); + + bool IsLastMessageUnseen(void); + bool GetPartialUIDFetch() {return fPartialUIDFetch;} + void SetPartialUIDFetch(bool isPartial) {fPartialUIDFetch = isPartial;} + uint32_t GetHighestNonDeletedUID(); + uint16_t GetSupportedUserFlags() { return fSupportedUserFlags; } + +private: + virtual ~nsImapFlagAndUidState(); + + nsTArray<nsMsgKey> fUids; + nsTArray<imapMessageFlagsType> fFlags; + // Hash table, mapping uids to extra flags + nsDataHashtable<nsUint32HashKey, nsCString> m_customFlagsHash; + // Hash table, mapping UID+customAttributeName to customAttributeValue. + nsDataHashtable<nsCStringHashKey, nsCString> m_customAttributesHash; + uint16_t fSupportedUserFlags; + int32_t fNumberDeleted; + bool fPartialUIDFetch; + mozilla::Mutex mLock; +}; + + + + +#endif |