org.abora.gold.traces
Class BranchDescription

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.snarf.Abraham
                    |
                    +--org.abora.gold.traces.BranchDescription
Direct Known Subclasses:
DagBranch, RootBranch, TreeBranch

public class BranchDescription
extends Abraham

Instances of subclasses describe the different kinds of paths in a traceDag. The
three kinds are root (no parent), tree (one parent) and dag (two parent) branches.
The dag caching routine chases up the dag finding the max of all paths. The special
case of chasing up the hierarchy is probably not worth the code.
At the moment, these never go away!!!!!!


Field Summary
protected  DagWood fulltrace
           
protected  int lastPosition
           
protected  BranchDescription myLeft
           
protected  BranchDescription myRight
           
 
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
BranchDescription(DagWood ft)
           
BranchDescription(Rcvr receiver)
           
 
Method Summary
 void addSuccessorsTo(MuSet set)
          Add the first useable positions for all successor branches to the set.
 void cacheRecur(PrimIndexTable navCache)
          recur toward the root filling in the cache.
 int contentsHash()
          A hash of the contents of this flock
 TracePosition createAfter(BoundedTrace trace)
          Return a new successor to the receiver.
 boolean doesInclude(int position, TracePosition tracePos)
           
 boolean equalsX(BranchDescription another)
           
 void installBranch(BranchDescription branch)
          Install branch as a descendant branch of myself.
 void installBranchAfter(BranchDescription branch, TracePosition trace)
           
static Heaper make(DagWood fulltrace)
           
static Heaper make(DagWood fulltrace, TracePosition parent)
           
static Heaper make(DagWood fulltrace, TracePosition parent1, TracePosition parent2)
           
 BranchDescription makeBranch(TracePosition trace1, TracePosition trace2)
          Create a dag branch that succeeds both trace1 and trace2.
 TracePosition nextPosition()
          Return the first available tracePosition on this branch.
 int ohashForEqual()
          See the comment for isEqual:.
 boolean oisEqual(Heaper another)
          ^(another isKindOf: BranchDescription) and: [(another basicCast: BranchDescription)
branchNum == myBranchNum]
 void printOn(java.io.PrintWriter aStream)
           
 void sendSelfTo(Xmtr xmtr)
          do nothing
 ImmuSet successorsOf(BoundedTrace trace)
           
 
Methods inherited from class org.abora.gold.snarf.Abraham
actualHashForEqual, becomeStub, cleanupGarbage, destroy, destruct, diskUpdate, dismantle, dismantleStatistics, fetchInfo, fetchShepherd, flockInfo, forget, getInfo, getShepherdStubCategory, initTimeNonInherited, isConstructed, isDestructed, isEqual, isKindOf, isPurgeable, 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, 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

lastPosition

protected int lastPosition

myLeft

protected BranchDescription myLeft

myRight

protected BranchDescription myRight

fulltrace

protected DagWood fulltrace
Constructor Detail

BranchDescription

public BranchDescription(DagWood ft)

BranchDescription

public BranchDescription(Rcvr receiver)
Method Detail

contentsHash

public int contentsHash()
Description copied from class: Abraham
A hash of the contents of this flock

Overrides:
contentsHash in class Abraham

doesInclude

public boolean doesInclude(int position,
                           TracePosition tracePos)

cacheRecur

public void cacheRecur(PrimIndexTable navCache)
recur toward the root filling in the cache.


addSuccessorsTo

public void addSuccessorsTo(MuSet set)
Add the first useable positions for all successor branches to the set.


successorsOf

public ImmuSet successorsOf(BoundedTrace trace)

createAfter

public TracePosition createAfter(BoundedTrace trace)
Return a new successor to the receiver. The first successor is on the
same branch with a higher position. Further successors are allocated
in a binary-tree fashion along a new branch.


installBranch

public void installBranch(BranchDescription branch)
Install branch as a descendant branch of myself. Walk down the binary tree of
branches to find a place to lodge it. This gets called if there was already a
branch existing off my root.


installBranchAfter

public void installBranchAfter(BranchDescription branch,
                               TracePosition trace)

makeBranch

public BranchDescription makeBranch(TracePosition trace1,
                                    TracePosition trace2)
Create a dag branch that succeeds both trace1 and trace2.


nextPosition

public TracePosition nextPosition()
Return the first available tracePosition on this branch.


printOn

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

equalsX

public boolean equalsX(BranchDescription another)

ohashForEqual

public int ohashForEqual()
See the comment for isEqual:.


oisEqual

public boolean oisEqual(Heaper another)
^(another isKindOf: BranchDescription) and: [(another basicCast: BranchDescription)
branchNum == myBranchNum]


sendSelfTo

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

Overrides:
sendSelfTo in class Abraham

make

public static Heaper make(DagWood fulltrace)

make

public static Heaper make(DagWood fulltrace,
                          TracePosition parent)

make

public static Heaper make(DagWood fulltrace,
                          TracePosition parent1,
                          TracePosition parent2)


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