I actually went digging into seen state and cyrus.index a little today
for another reason, and I realized that we wouldn't have to expand/upgrade the index file to accomodate a shared seen state. The existing field for system flags is just a bitmask, so we could easily add a bit for shared \Seen. We could also implement the sharedseen annotation as a mailbox flag in the index header, just like condstore.

Based on other changes that I'm thinking about, I'm starting to like this idea better, even thought it *may* involve more code.

Doesn't that just seem annoying having two *completely* different ways of storing seen state? There' probably quite a few places in the code that look for the seen state. It just seems much easier to me to have a single flag that controls whether to open a specific users seen db, or the "anyone" user seen db, rather than having to special case lots of code around the place for either pulling from the seen db, or looking up a bit in the index file.

Rob

Reply via email to