[ZODB-Dev] Ordering before commit hooks

Sidnei da Silva sidnei at enfoldsystems.com
Thu Sep 1 16:13:09 EDT 2005


On Thu, Sep 01, 2005 at 08:34:11PM +0200, Dieter Maurer wrote:
| Sidnei da Silva wrote at 2005-8-31 23:42 -0300:
| > ...
| >I would instead fire 'before' and 'after' events for each of those
| >systems, and a system that wants to explicitly run after/before
| >another system would do so as a subscriber to the explicit event
| >fired.
| 
| But the "systems" do not know about one another...

That's right, and they shouldn't need to. In my example, 'A' doesn't
need to know about 'B', and none of them need to know about 'AB'.

| Only the integrator knows what "systems" are in its application.

Yes, he's the one in charge of registering the subscribers so they are
called in the order he wants them to.

So:

  event(IBeforeSubsystem, SubSystem)
  execute SubSystem
  event(IAfterSubsystem, Subsystem)

Back to my example, 'B' would subscribe to 'event(IAfterSubsystem,
A)', and 'AB' could subscribe to 'event(IBeforeSubsystem, B)'.

That would for sure satisfy any need *I* can think of.

| All a single system can say: I want some callbacks
| registered -- in the following partial order (among my callbacks).
| 
| There may be ordering restrictions with the callbacks of
| other (unknown) "systems". That depends on what my and the other callback do.

Don't quite get what you meant to say here, but I have a feeling it's
not much different from what Jim proposes, and would imply that in my
example SubSystem 'A' would need to know about SubSystem 'B'. Is that
what you meant?

-- 
Sidnei da Silva
Enfold Systems, LLC.
http://enfoldsystems.com


More information about the ZODB-Dev mailing list