On 20 May 2002, I said:
> In summary, I haven't made up my mind yet. I need to do some more
> thinking and coding and see what falls out. I'm reconciled to more
> upheaval in session.py though, so what the heck. Might as well get it
> all done at once.
OK, I've made up my mind. Here's how I now think session persistence
should work:
* Quixote provides a SessionManager class that is much like the
current one, ie. sessions are stored in a mapping self.sessions,
and the session manager provides a mapping interface that is
delegated to self.sessions
* but applications can provide an alternative mapping object that
implements persistence. If you want to store your sessions in small
pickle files in a directory, you write a mapping class that does
that. If you want to use ZODB, you just provide an instance of
OOBTree or PersistentMapping, depending on your needs. If you want
to write sessions to a DBM/BerkeleyDB hash file, you might be able
to get away with just supplying the file, or maybe a very thin
wrapper around it.
Something like this occurred to me Saturday as I was writing the
DemoSessionManager that I posted that evening, and then Jon suggested
the same idea today. Now that I've actually implemented it, it just
feels right. Very nice and OO. I'm going to test it out a bit with my
session management demo to make sure it works, and then I'll post some
code for everyone to chew on.
Greg
--
Greg Ward - software developer gward@mems-exchange.org
MEMS Exchange http://www.mems-exchange.org