Corrected the yellowness for bugs between the MagicDay and the bounce date.
[wvapps.git] / unity / maildir / unimaildirgen.h
blob26ff38de7384028073524a4fd8c5b2edba1f9c01
2 #ifndef __UNIMAILDIR_H
3 #define __UNIMAILDIR_H
5 #include "unimailemail.h"
6 #include "uniconfgen.h"
7 #include "wvdiriter.h"
8 #include "wvscatterhash.h"
10 class UniMaildirGen : public UniConfGen
12 protected:
13 WvString dir;
14 WvLog log;
16 struct DirCache
18 WvString filename;
19 time_t mtime;
21 DirCache(WvStringParm _name, time_t _mtime)
22 : filename(_name), mtime(_mtime)
23 { }
25 typedef WvMap<WvString,DirCache *,OpEqComp,WvScatterHash> DirCacheMap;
27 DirCacheMap dircache;
28 time_t dir_mtime;
30 class ItemIter;
31 friend class ItemIter;
32 class HeaderIter;
34 WvString filename(const UniConfKey &key);
35 void update_cache();
36 virtual void flush_buffers() { }
38 public:
39 UniMaildirGen(WvStringParm _dir);
40 virtual ~UniMaildirGen();
42 /***** Overridden members *****/
43 virtual WvString get(const UniConfKey &key);
44 virtual void set(const UniConfKey &key, WvStringParm value);
45 virtual void setv(const UniConfPairList &pairs);
46 virtual bool haschildren(const UniConfKey &key);
47 virtual bool refresh();
48 virtual Iter *iterator(const UniConfKey &key);
52 /**
53 * Iterate through the items in your maildir.
55 class UniMaildirGen::ItemIter : public UniConfGen::Iter
57 protected:
58 UniMaildirGen &dir;
59 WvStringList list;
60 WvStringList::Iter i;
62 public:
63 ItemIter(UniMaildirGen &dir);
64 ~ItemIter();
66 /***** Overridden members *****/
67 virtual void rewind();
68 virtual bool next();
69 virtual UniConfKey key() const;
70 virtual WvString value() const;
74 /**
75 * Iterate through the items in your maildir.
77 class UniMaildirGen::HeaderIter : public UniConfGen::Iter
79 protected:
80 UniMaildirGen &dir;
81 WvString filename;
82 UniMailEmail email;
83 WvList<UniMailEmail::Header>::Iter i;
84 bool rewound;
86 public:
87 HeaderIter(UniMaildirGen &dir, WvStringParm _filename);
88 ~HeaderIter();
90 /***** Overridden members *****/
91 virtual void rewind();
92 virtual bool next();
93 virtual UniConfKey key() const;
94 virtual WvString value() const;
98 #endif // __UNIMAILDIR_H