org.abora.gold.fossil
Class RecorderFossil

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.snarf.Abraham
                    |
                    +--org.abora.gold.fossil.RecorderFossil
Direct Known Subclasses:
EditionRecorderFossil, WorkRecorderFossil

public class RecorderFossil
extends Abraham

A Fossil for a ResultRecorder, which also stores its permissions, filters, and a cache of
the results which have already been recorded.


Field Summary
protected  IntegerVar myAgendaCount
           
protected  IDRegion myLoginAuthority
           
protected  ResultRecorder myRecorder
           
protected  IntegerVar myRecorderCount
           
protected  TrailBlazer myTrailBlazer
           
 
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
RecorderFossil(IDRegion loginAuthority, TrailBlazer trailBlazer)
           
RecorderFossil(Rcvr receiver)
           
 
Method Summary
 ResultRecorder actualRecorder()
          Make the right kind of Recorder for this fossil
 void addItem(AgendaItem item)
           
static void bomb(RecorderFossil CHARGE)
           
 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 extinguish(TrailBlazer trailBlazer)
          Should only be called from BeEdition::fossilRelease().
 boolean isExtinct()
          A Fossil (unlike a Grabber or an Orgl) does not prevent the grabbed IObject from being
dismantled.
 boolean isPurgeable()
          I can`t go to disk while someone has my WaldoSocket and might be doing
something with the Waldo in it.
static Heaper make(IDRegion loginAuthority, Filter eFilter, BeEdition trail)
           
 void memoryCheck()
           
 void reanimate(BlockClosure aBlock)
          Should only be called if I am not extinct.
f reanimate: [:w {RecorderFossil} | ...]
should translate to
BEGIN_REANIMATE(f,RecorderFossil,w) {
...
} END_REANIMATE;
 void releaseRecorder()
          As a premature optimization, we don't destroy the waldo when the count goes to zero, but
rather when we consider purging while the count is zero.
 void removeItem(AgendaItem item)
           
 void restartRecorderFossil(Rcvr rcvr)
           
 ResultRecorder secretRecorder()
          The Recorder of which this Fossil is the imprint.
 void sendSelfTo(Xmtr xmtr)
          do nothing
 void storeDataRecordingAgents(SensorCrum sensorCrum, Agenda agenda)
          Store recording agents into a SensorCrum on data in the original Edition that was a source
of the query
 void storePartialityRecordingAgents(SensorCrum sensorCrum, Agenda agenda)
          Store recording agents into a SensorCrum on partiality in the original Edition that was a
source of the query
 void storeRangeElementRecordingAgents(BeRangeElement rangeElement, SensorCrum sensorCrum, Agenda agenda)
          Store recording agents into a SensorCrum on a RangeElement in the original Edition that
was a source of the query
 TrailBlazer trailBlazer()
           
static RecorderFossil transcluders(boolean isDirectOnly, IDRegion loginAuthority, Filter directFilter, Filter indirectFilter, TrailBlazer trailBlazer)
           
static RecorderFossil works(boolean isDirectOnly, IDRegion loginAuthority, Filter endorsementsFilter, TrailBlazer trailBlazer)
           
 
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, isShepherd, isStub, isUnlocked, linkTimeNonInherited, newShepherd, remember, restartAbraham, restartAbraham, returnToken, staticTimeNonInherited, token
 
Methods inherited from class org.abora.gold.xpp.basic.Heaper
abstractDeclarationFor, abstractTypeFor, addMethodAttributeToInOf, addPackage, addPackageCategory, allClientProtocolOn, argumentTypesFor, arrow, blast, blast, BLAST, cachePromiseNameTable, cachePromiseNameTableIn, canYouBecome, cast, cleanPromiseClasses, clientClassesDo, clientFunctionsOn, clientMethodsOn, clientProtocol, clientProtocolDo, clientProtocolOn, clientProtocolOn, collectibleClasses, compare, compileClientSubclasses, compileConstantPromiseMethods, compileCreateFromRcvr, compileEQ, compileGeneratedClassMethod, compileGeneratedMethod, compileHook, compilePromise, compilePromiseDefaultMethods, compilePromiseFluidDeclarations, compilePromiseHandlers, compilePromiseMethods, compileRequestCreateMsgInArguments, compileRequestEvaluateMsgInReturningArguments, compileRPCSpecialistEvaluateMsgForReturningArguments, compileSendSelfTo, compileSendSelfToSendHook, compileStubbleMethods, compileSubclassStubbleMethods, computeMangle, computePreorder, constantTypeValue, convert, convertCopyDeclarations, convertDeferredDeclarations, convertProxyDeclarations, convertSubclassCopyDeclarations, convertSubclassDeferredDeclarations, convertSubclassProxyDeclarations, copyReferencesToType, create, create, create, create, create, create, create, create, create, create, createRequestClassArguments, definesProxyMethods, delete, deref, destructor, enum, enumFlags, equals, exportName, fetchAttribute, fetchPackage, fetchSuperCategory, fileOutClientProtocol, findCategory, findSenderAndReceiverMethods, findTailInto, flushPromiseNameTable, foo, freezeClientClasses, freezeClientProtocol, freezeStProtocol, frozenClasses, garbageCollect, garbageCollectFrom, gcOpportunity, gcOpportunity, generatedCategory, generatePromiseNames, getCategory, getOrMakePackage, getSuperCategory, handlerSignaturesFrom, hash, hashForEqual, hasProxyMethods, info_clientClasses, info_clientSideClasses, info_promiseClasses, info_stProtocol, inGC, initializedClasses, initializingClasses, initPackages, initStringHashSBoxes, inspectPieces, instanceSize, IntegerVar, isByProxy, isConstructed, isDestructed, isEqualOrSubclassOf, isGenerated, isIntType, isKindOf, isRawType, make, makeClassTable, makeFillTable, makeRequestTable, mangle, markChildren, markCount, markInstances, mayBecome, mayBecomeAnySubclassOf, new1, newX, nonCopyVariables, notWorking, pack, packageClasses, packagingCategory, parseExportName, passe, pointerToStaticMember, pointerToStaticMember, pointerToVirtualMember, preorderMax, preorderNumber, printOn, PROBLEM, problems, promiseClass, promiseDefaultValue, promiseName, promiseNameTable, promiseToAbstract, registerPackageCategory, removeGeneratedCode, removeStubbleMethods, removeSubclassGeneratedCode, removeSubclassStubbleMethods, requestProcedure, requestProceduresFrom, returnTypeFor, rootName, scheduleTermination, sendProxyTo, serverNameFor, setGC, signal, signals, smalltalkSelector, stClientProtocol, stubbleSelectorTokenReturnsArguments, subclassNonCopyVariables, takeOop, togglePromiseName, togglePromiseOfParse, unimplemented, unmangle, verifyFreeze, wipeStubble
 
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
 

Field Detail

myLoginAuthority

protected IDRegion myLoginAuthority

myTrailBlazer

protected TrailBlazer myTrailBlazer

myRecorder

protected ResultRecorder myRecorder

myRecorderCount

protected IntegerVar myRecorderCount

myAgendaCount

protected IntegerVar myAgendaCount
Constructor Detail

RecorderFossil

public RecorderFossil(IDRegion loginAuthority,
                      TrailBlazer trailBlazer)

RecorderFossil

public RecorderFossil(Rcvr receiver)
Method Detail

addItem

public void addItem(AgendaItem item)

extinguish

public void extinguish(TrailBlazer trailBlazer)
Should only be called from BeEdition::fossilRelease(). Results in my becoming extinct.


releaseRecorder

public void releaseRecorder()
As a premature optimization, we don't destroy the waldo when the count goes to zero, but
rather when we consider purging while the count is zero.


removeItem

public void removeItem(AgendaItem item)

secretRecorder

public ResultRecorder secretRecorder()
The Recorder of which this Fossil is the imprint. If necessary, reconstruct it using the
information stored in the imprint.
Should only be called if I am not extinct
Should only be called from the reanimate macro.


reanimate

public void reanimate(BlockClosure aBlock)
Should only be called if I am not extinct.
f reanimate: [:w {RecorderFossil} | ...]
should translate to
BEGIN_REANIMATE(f,RecorderFossil,w) {
...
} END_REANIMATE;


isExtinct

public boolean isExtinct()
A Fossil (unlike a Grabber or an Orgl) does not prevent the grabbed IObject from being
dismantled. Instead, if the IObject does get dismantled, then the Fossil is considered
extinct. A waldo may not be gotten from an extinct fossil (if the species is really
extinct, then it cannot be revived from its remaining fossils).


isPurgeable

public boolean isPurgeable()
I can`t go to disk while someone has my WaldoSocket and might be doing
something with the Waldo in it.

Overrides:
isPurgeable in class Abraham

restartRecorderFossil

public void restartRecorderFossil(Rcvr rcvr)

dismantle

public void dismantle()
Description copied from class: Abraham
Disconnect me from the universe and throw me off the disk.
For GC safety, we keep a strongptr to ourself -- is this still necessary?

Overrides:
dismantle in class Abraham

actualRecorder

public ResultRecorder actualRecorder()
Make the right kind of Recorder for this fossil


memoryCheck

public void memoryCheck()

trailBlazer

public TrailBlazer trailBlazer()

storeDataRecordingAgents

public void storeDataRecordingAgents(SensorCrum sensorCrum,
                                     Agenda agenda)
Store recording agents into a SensorCrum on data in the original Edition that was a source
of the query


storePartialityRecordingAgents

public void storePartialityRecordingAgents(SensorCrum sensorCrum,
                                           Agenda agenda)
Store recording agents into a SensorCrum on partiality in the original Edition that was a
source of the query


storeRangeElementRecordingAgents

public void storeRangeElementRecordingAgents(BeRangeElement rangeElement,
                                             SensorCrum sensorCrum,
                                             Agenda agenda)
Store recording agents into a SensorCrum on a RangeElement in the original Edition that
was a source of the query


sendSelfTo

public void sendSelfTo(Xmtr xmtr)
Description copied from class: Heaper
do nothing

Overrides:
sendSelfTo in class Abraham

transcluders

public static RecorderFossil transcluders(boolean isDirectOnly,
                                          IDRegion loginAuthority,
                                          Filter directFilter,
                                          Filter indirectFilter,
                                          TrailBlazer trailBlazer)

works

public static RecorderFossil works(boolean isDirectOnly,
                                   IDRegion loginAuthority,
                                   Filter endorsementsFilter,
                                   TrailBlazer trailBlazer)

bomb

public static void bomb(RecorderFossil CHARGE)

make

public static Heaper make(IDRegion loginAuthority,
                          Filter eFilter,
                          BeEdition trail)


Translation - Copyright © 2003 David G Jones. All Rights Reserved.
Original Udanax-Gold - Copyright © 1979-1999 Udanax.com. All rights reserved.