Index - All Packages - All Categories - All Classes

Class Agenda

An AgendaItem composed of other AgendaItems. My stepping action consists of stepping one of my component items. When I exhaust a component item, I unregister and destroy it.

Note: The order in which I select a component item is currently unspecified and uncontrolled (depending on "MuSet::stepper()"). Eventually, it may make sense for me to use the Escalator Algorithm to do prioritized scheduling.

Empty Agendas are also made as do-nothing AgendaItems. The currently get duely get scheduled, stepped, and unscheduled. A possible optimization would be to avoid scheduling do-nothing AgendaItems.

Package: Udanax-Gold
All Superclasses: Object Heaper Abraham AgendaItem
Protocols: Object
Categories: Xanadu-turtle

Class Methods

make



Instance Methods

create



Overrides: AgendaItem

createRcvr: receiver



Overrides: AgendaItem

dismantle



Overrides: AgendaItem

registerItem: item

By registering the item, we ensure that if we crash and reboot, the item will be eventually and repeatedly stepped until step returns FALSE, provided we are registered up through the Turtle. Do NOT multiply register the same item.

sendSelfTo: xmtr



Overrides: AgendaItem

step

'step' one of my component items. If I return FALSE, that means there's nothing currently left to do. However, since more AgendaItems may get registered later, there may later be something more for me to do, so I shouldn't necessarily be destroyed. This creates a composition problem: If an Agenda is stored as an item within another Agenda, then when the outer Agenda is stepped and it in turn steps the inner Agenda, if the inner Agenda returns FALSE, the outer Agenda will destroy it. This is all legal and shouldn't be a problem as long as one is aware of this behavior

Overrides: AgendaItem

unregisterItem: item

An item should be unregistered either when it is done (when 'step' returns FALSE) or when it no longer represents something that needs to be done should we crash and reboot. Unregistering an item which is not registered and already forgotten is legal and has no effect.


Index - All Packages - All Categories - All Classes