|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--org.abora.gold.java.AboraHeaper
|
+--org.abora.gold.xpp.basic.Heaper
|
+--org.abora.gold.snarf.Abraham
|
+--org.abora.gold.turtle.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
| Field Summary |
| Fields inherited from class org.abora.gold.snarf.Abraham |
DismantleStatistics, myHash, myInfo, myToken, TheTokenSource |
| Fields inherited from class org.abora.gold.xpp.basic.Heaper |
AllBlasts, BecomeMap, GarbageCount, InGC, InitializedClasses, InitializingClasses, LastMemory, NextClientRequestNumber, NotOneElementSignal, PackageTable, PromiseNameTable, StringHashSBoxes |
| Fields inherited from class org.abora.gold.java.AboraHeaper |
ActiveClubs, CurrentAuthor, CurrentBertCanopyCache, CurrentBertCrum, CurrentChunk, CurrentGrandMap, CurrentKeyMaster, CurrentPacker, CurrentSensorCanopyCache, CurrentServer, CurrentSession, CurrentSessions, CurrentTrace, InitialEditClub, InitialOwner, InitialReadClub, InitialSponsor, InsideTransactionFlag |
| Constructor Summary | |
AgendaItem()
Not so special constructor for not becoming this class |
|
AgendaItem(int hash)
Special constructor for becoming this class |
|
AgendaItem(Rcvr receiver)
|
|
| Method Summary | |
void |
dismantle()
Disconnect me from the universe and throw me off the disk. For GC safety, we keep a strongptr to ourself -- is this still necessary? |
void |
forgetYourself()
forget is protected. |
void |
newShepherd()
All AgendaItems use explicit deletion semantics. |
void |
rememberYourself()
remember is protected. |
void |
schedule()
Registers me with the top level Agenda, so that I will eventually get stepped. |
void |
sendSelfTo(Xmtr xmtr)
do nothing |
boolean |
step()
Return FALSE when there's nothing left to do (at which time I should usually be unregistered and destroyed, but see Agenda::step()) |
void |
unschedule()
Unregisters me with the top level Agenda, so that I am no longer scheduled to get stepped. Also causes me to be forgotten. |
| Methods inherited from class org.abora.gold.snarf.Abraham |
actualHashForEqual, becomeStub, cleanupGarbage, contentsHash, destroy, destruct, diskUpdate, dismantleStatistics, fetchInfo, fetchShepherd, flockInfo, forget, getInfo, getShepherdStubCategory, initTimeNonInherited, isConstructed, isDestructed, isEqual, isKindOf, isPurgeable, isShepherd, isStub, isUnlocked, linkTimeNonInherited, remember, restartAbraham, restartAbraham, returnToken, staticTimeNonInherited, token |
| Methods inherited from class org.abora.gold.java.AboraHeaper |
asOop, basicInspect, displayString, error, hack, halt, inspect, knownBug, mightNotImplement, REQUIRES, shouldImplement, shouldNotImplement, stubbleForSubclassResponsibility, thingToDo, willNotImplement |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
public AgendaItem()
public AgendaItem(int hash)
public AgendaItem(Rcvr receiver)
| Method Detail |
public void forgetYourself()
public void rememberYourself()
public void schedule()
public boolean step()
public void unschedule()
public void dismantle()
Abraham
dismantle in class Abrahampublic void newShepherd()
newShepherd in class Abrahampublic void sendSelfTo(Xmtr xmtr)
Heaper
sendSelfTo in class Abraham
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||