org.abora.gold.be.ents
Class HistoryCrum

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.be.ents.HistoryCrum
Direct Known Subclasses:
HBottomCrum, HUpperCrum

public class HistoryCrum
extends Heaper

invariant: the parent''s trace >= the child''s trace
The subclasses should differentiate between the number
of children: 0, 1, or more. ORoots have 0 children and
always have a canopyCrum. HCrums for OCrums in the
body of the ent have one child if they are at the top
of an unshared subtreee, and more if they are at the top
of a shared subtree. HCrums with more than one child
almost always have a canopyCrum to represent the join
between the canopies of their multiple hchildren.
The change would make the updateH method return a
new crum, which the oCrums would install.
They don''t do so now because I''m not sure if a crum with
no parents can appear in the middle of the ent. If so, then
the version compare operations would gag. Hmmm. The
change doesn''t make any difference for that....


Field Summary
protected  int myHash
           
protected static int SequenceNumber
           
 
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
HistoryCrum()
           
HistoryCrum(Rcvr receiver)
           
 
Method Summary
 void actualDelayedStoreBackfollow(PropFinder finder, RecorderFossil recorder, HashSetCache hCrumCache)
           
 void actualDelayedStoreBackfollow(PropFinder finder, RecorderFossil fossil, ResultRecorder recorder, HashSetCache hCrumCache)
          See comment in HistoryCrum>>delayedStoreBackfollow:with:with:
 int actualHashForEqual()
           
 void actualStoreBackfollow(PropFinder finder, MuTable table, HashSetCache hCrumCache)
           
 boolean anyPasses(PropFinder finder)
           
 BertCrum bertCrum()
          These objects must have a crum in the bert canopy.
 void delayedStoreBackfollow(PropFinder finder, RecorderFossil recorder, HashSetCache hCrumCache)
           
 void delayedStoreBackfollow(PropFinder finder, RecorderFossil fossil, ResultRecorder recorder, HashSetCache hCrumCache)
          Do the northward H-tree walk for the 'now' part of a backfollow.
 java.lang.String displayString()
           
 ImmuSet hCrums()
           
 TracePosition hCut()
           
 void inspect()
           
 void inspectCanopy()
           
 void inspectMenuArray()
           
 void inspectOrgls()
           
 boolean inTrace(TracePosition trace)
          Return true if the receiver can backfollow to trace.
 boolean isEmpty()
          Return true if their are no upward pointers.
 boolean isEqual(Heaper other)
          Return true if the two objects are equal.
static void linkTimeNonInherited()
           
 Mapping mappingTo(TracePosition trace, Mapping initial)
          return the mapping into the domain space of the given trace
static int nextHistoryCrumSequenceNumber()
          Shepherds use a sequence number for their hash.
 ImmuSet oParents()
           
 void printOn(java.io.PrintWriter aStream)
           
 boolean propagateBCrum(BertCrum newBCrum)
          If bertCrum is leafward of newBCrum then change it and return true,
otherwise return false.
 void ringDetectors(FeEdition edition)
          Ring all the detectors north of me with the given Edition as argument
 void sendSelfTo(Xmtr xmtr)
          do nothing
 void showOn(java.lang.Object oo)
           
 void storeBackfollow(PropFinder finder, MuTable table, HashSetCache hCrumCache)
           
 
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, cleanupGarbage, 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, destroy, destruct, 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, isUnlocked, make, makeClassTable, makeFillTable, makeRequestTable, mangle, markChildren, markCount, markInstances, mayBecome, mayBecomeAnySubclassOf, new1, newX, nonCopyVariables, notWorking, pack, packageClasses, packagingCategory, parseExportName, passe, pointerToStaticMember, pointerToStaticMember, pointerToVirtualMember, preorderMax, preorderNumber, 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, error, hack, halt, 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

myHash

protected int myHash

SequenceNumber

protected static int SequenceNumber
Constructor Detail

HistoryCrum

public HistoryCrum()

HistoryCrum

public HistoryCrum(Rcvr receiver)
Method Detail

displayString

public java.lang.String displayString()
Overrides:
displayString in class AboraHeaper

inspect

public void inspect()
Overrides:
inspect in class AboraHeaper

inspectCanopy

public void inspectCanopy()

inspectMenuArray

public void inspectMenuArray()

inspectOrgls

public void inspectOrgls()

printOn

public void printOn(java.io.PrintWriter aStream)
Overrides:
printOn in class Heaper

showOn

public void showOn(java.lang.Object oo)

actualDelayedStoreBackfollow

public void actualDelayedStoreBackfollow(PropFinder finder,
                                         RecorderFossil fossil,
                                         ResultRecorder recorder,
                                         HashSetCache hCrumCache)
See comment in HistoryCrum>>delayedStoreBackfollow:with:with:


anyPasses

public boolean anyPasses(PropFinder finder)

bertCrum

public BertCrum bertCrum()
These objects must have a crum in the bert canopy.


delayedStoreBackfollow

public void delayedStoreBackfollow(PropFinder finder,
                                   RecorderFossil fossil,
                                   ResultRecorder recorder,
                                   HashSetCache hCrumCache)
Do the northward H-tree walk for the 'now' part of a backfollow.


ringDetectors

public void ringDetectors(FeEdition edition)
Ring all the detectors north of me with the given Edition as argument


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

isEmpty

public boolean isEmpty()
Return true if their are no upward pointers. This is used
by OParts to determine if they can be forgotten.


isEqual

public boolean isEqual(Heaper other)
Description copied from class: Heaper
Return true if the two objects are equal.

Overrides:
isEqual in class Heaper

inTrace

public boolean inTrace(TracePosition trace)
Return true if the receiver can backfollow to trace.


hCut

public TracePosition hCut()

mappingTo

public Mapping mappingTo(TracePosition trace,
                         Mapping initial)
return the mapping into the domain space of the given trace


oParents

public ImmuSet oParents()

propagateBCrum

public boolean propagateBCrum(BertCrum newBCrum)
If bertCrum is leafward of newBCrum then change it and return true,
otherwise return false.


actualDelayedStoreBackfollow

public void actualDelayedStoreBackfollow(PropFinder finder,
                                         RecorderFossil recorder,
                                         HashSetCache hCrumCache)

actualStoreBackfollow

public void actualStoreBackfollow(PropFinder finder,
                                  MuTable table,
                                  HashSetCache hCrumCache)

delayedStoreBackfollow

public void delayedStoreBackfollow(PropFinder finder,
                                   RecorderFossil recorder,
                                   HashSetCache hCrumCache)

hCrums

public ImmuSet hCrums()

storeBackfollow

public void storeBackfollow(PropFinder finder,
                            MuTable table,
                            HashSetCache hCrumCache)

sendSelfTo

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

Overrides:
sendSelfTo in class Heaper

linkTimeNonInherited

public static void linkTimeNonInherited()

nextHistoryCrumSequenceNumber

public static int nextHistoryCrumSequenceNumber()
Shepherds use a sequence number for their hash. Return the next one
and increment. This should actually do spread the hashes.



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