Weblocks makes some assumptions about persistence as object serializability to some data store. True persistent objects don't quite fit because in a couple of places it creates temporary objects which are visible to the whole system, but may be uninitialized. I had to create a proxy class mechanism (weblocks-elephant) to allow for temporary objects that didn't pollute the class index until we were ready to commit it.
Ian On Feb 20, 2009, at 6:24 AM, Leslie P. Polzer wrote: > > >> Very rough and ready. > > Then it's at least a candidate for contrib/ right away. > > >> The worst part about this is overwriting the object-id method >> completely. > > Fair enough. > > >> Suggestions and whatnot welcome -- it works for our small mock up > > This first approximation is suprisingly simple. How do you > add new objects (or prevent new instances from getting added > automatically)? > > >> but we're not sure if we'll stay with weblocks > > Can we help you in your decision process? > > In any case I'd be glad to know with what you will end up > and what influenced your decision. > > >> (our program is mostly for generating lots of RRD graphs -- if you >> want an example of doing that with weblocks I can send it along). > > Yes please. I have a personal interest in such a thing and it would > probably also make a nice additional demo. > > > Some things I noticed: > >> (defgeneric strictly-less-p (a b) >> (defgeneric equivalentp (a b) >> (defun order-objects-in-memory (seq order-by) >> (defun range-objects-in-memory (seq range) > > Did you copy those from the memory store? > > We should really make this available for all stores > in store-utils.lisp. > > >> (defmethod find-persistent-objects ((store >> db.allegrocache::database) class-name &key >> order-by range &allow-other-keys) >> (order-objects-in-memory >> (range-objects-in-memory >> (let (val) >> (let ((db.allegrocache:*allegrocache* store)) >> (db.allegrocache:doclass* (x (find-class class-name)) >> (push x val))) >> val) range) order-by)) > > I suppose we'd want to delegate ordering and ranging to AC later > for efficiency... > > Leslie > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/weblocks?hl=en -~----------~----~----~----~------~----~------~--~---
