Index - All Packages - All Categories - All Classes

Class AgendaItem

A persistent representation of things that still need to be done. Can think of it like a persistent process record. "schedule"ing me ensures that I will be stepped eventually, and repeatedly, until step returns FALSE, even if the process should crash after I am scheduled. Scheduling me so that I am persistent may happen inside some other consistent block, however I will be stepped while outside of any consistent block (The FakePacker doesn't do this yet). Creating an AgendaItem does not imply that it is scheduled, the client must explicitly schedule it as well. Destroying it *does* ensure that it gets unscheduled, though it is valid & safe to destroy one which isn't scheduled.

NOTE: Right now there are no fairness guarantees (and there may never be), so all AgendaItems must eventually terminate in order for other things (like the ServerLoop) to be guaranteed of eventually executing

Package: Udanax-Gold
All Superclasses: Object Heaper Abraham
Immediate Subclasses: Agenda GrandNodeDoubler GrandNodeReinserter Matcher NorthRecorderChecker PropChanger RecorderTrigger Sequencer SouthRecorderChecker UpdateTransitiveMemberIDs UpdateTransitiveSuperClubIDs
Protocols: Object
Categories: Xanadu-turtle

Instance Methods

create

Not so special constructor for not becoming this class

Overrides: Abraham
Overridden by: Agenda

create: hash

Special constructor for becoming this class

Overrides: Abraham
Overridden by: GrandNodeDoubler PropChanger ActualPropChanger HeightChanger UpdateTransitiveMemberIDs

createRcvr: receiver



Overrides: Abraham
Overridden by: Agenda GrandNodeDoubler GrandNodeReinserter Matcher NorthRecorderChecker PropChanger ActualPropChanger HeightChanger RecorderHoister RecorderTrigger Sequencer SouthRecorderChecker UpdateTransitiveMemberIDs UpdateTransitiveSuperClubIDs

dismantle



Overrides: Abraham
Overridden by: Agenda Matcher PropChanger RecorderTrigger Sequencer SouthRecorderChecker

forgetYourself

forget is protected. This method exposes it for AgendaItems

newShepherd

All AgendaItems use explicit deletion semantics.

Overrides: Abraham

rememberYourself

remember is protected. This method exposes it for AgendaItems

schedule

Registers me with the top level Agenda, so that I will eventually get stepped. Also causes me to be remembered.

sendSelfTo: xmtr



Overrides: Abraham
Overridden by: Agenda GrandNodeDoubler GrandNodeReinserter Matcher NorthRecorderChecker PropChanger ActualPropChanger HeightChanger RecorderHoister RecorderTrigger Sequencer SouthRecorderChecker UpdateTransitiveMemberIDs UpdateTransitiveSuperClubIDs

step

Return FALSE when there's nothing left to do (at which time I should usually be unregistered and destroyed, but see Agenda::step())

Overridden by: Agenda GrandNodeDoubler GrandNodeReinserter Matcher NorthRecorderChecker PropChanger ActualPropChanger HeightChanger RecorderHoister RecorderTrigger Sequencer SouthRecorderChecker UpdateTransitiveMemberIDs UpdateTransitiveSuperClubIDs

unschedule

Unregisters me with the top level Agenda, so that I am no longer scheduled to get stepped. Also causes me to be forgotten.


Index - All Packages - All Categories - All Classes