/** * @file pendingupdates.h * @brief <---> * @author Andreas Aardal Hanssen * @date 2002-2005 */ #ifndef pendingupdates_h_included #define pendingupdates_h_included #include #include #include namespace Binc { class Mailbox; class PendingUpdates { public: enum { EXPUNGE = 0x01, FLAGS = 0x02, EXISTS = 0x04, RECENT = 0x08 }; class expunged_const_iterator { private: std::vector::iterator internal; public: unsigned int operator*(void) const; void operator++(void); bool operator!=(expunged_const_iterator) const; bool operator==(expunged_const_iterator) const; expunged_const_iterator(void); expunged_const_iterator(std::vector::iterator i); }; expunged_const_iterator beginExpunged(void); expunged_const_iterator endExpunged(void); class flagupdates_const_iterator { private: std::map::iterator internal; std::map *sqnrtouid; std::map> *sqnrtocflags; public: unsigned int first(void) const; unsigned int second(void) const; std::vector getCustomFlags(void) const; unsigned int getUID(void) const; void operator++(void); bool operator!=(flagupdates_const_iterator) const; flagupdates_const_iterator(void); flagupdates_const_iterator(std::map::iterator i, std::map> *, std::map *); }; flagupdates_const_iterator beginFlagUpdates(void); flagupdates_const_iterator endFlagUpdates(void); void addExpunged(unsigned int uid); void addFlagUpdates(unsigned int sqnr, unsigned int uid, unsigned int flags, const std::vector &cflags); void setExists(unsigned int n); void setRecent(unsigned int n); unsigned int getExists(void) const; unsigned int getRecent(void) const; bool newExists(void) const; bool newRecent(void) const; PendingUpdates(void); ~PendingUpdates(void); private: std::vector expunges; std::map flagupdates; std::map sqnrtouid; std::map> sqnrtocflags; unsigned int exists; unsigned int recent; bool newexists; bool newrecent; }; bool pendingUpdates(Mailbox *, int type, bool rescan, bool showAll = false, bool forceScan = false, bool uidfetchflags = false); } #endif