org.abora.gold.be.canopy
Class CanopyCache

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.be.canopy.CanopyCache

public class CanopyCache
extends Heaper


Field Summary
protected  CanopyCrum myCachedCrum
           
protected  MuSet myCachedPath
           
protected  CanopyCrum myCachedRoot
           
 
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
CanopyCache()
           
 
Method Summary
 int actualHashForEqual()
           
 void clearCache()
          Clear the cache because the canopy has
changed.
static Heaper make()
           
 MuSet pathFor(CanopyCrum canopyCrum)
          Return the set of all crums from canopyCrum
(inclusive) to the top of canopyCrum's canopy.
 CanopyCrum rootFor(CanopyCrum bertCrum)
          Return the crum at the top of canopyCrum's canopy.
 void updateCacheFor(CanopyCrum canopyCrum)
          If the cache contains canopyCrum, it must be updated
because canopyCrum has new parents.
 void updateCacheForParent(CanopyCrum childCrum, CanopyCrum parentCrum)
          If the cache contains childCrum it must be made
to contain childCrum's new parent: parentCrum.
Also update CachedRoot.
 
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, isEqual, isEqualOrSubclassOf, isGenerated, isIntType, isKindOf, isRawType, isUnlocked, linkTimeNonInherited, 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, sendSelfTo, 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

myCachedCrum

protected CanopyCrum myCachedCrum

myCachedRoot

protected CanopyCrum myCachedRoot

myCachedPath

protected MuSet myCachedPath
Constructor Detail

CanopyCache

public CanopyCache()
Method Detail

clearCache

public void clearCache()
Clear the cache because the canopy has
changed. This ought to destroy the cachedPath.
This must be cleared after every episode!!!!!!


pathFor

public MuSet pathFor(CanopyCrum canopyCrum)
Return the set of all crums from canopyCrum
(inclusive) to the top of canopyCrum's canopy.


rootFor

public CanopyCrum rootFor(CanopyCrum bertCrum)
Return the crum at the top of canopyCrum's canopy.


updateCacheForParent

public void updateCacheForParent(CanopyCrum childCrum,
                                 CanopyCrum parentCrum)
If the cache contains childCrum it must be made
to contain childCrum's new parent: parentCrum.
Also update CachedRoot.


updateCacheFor

public void updateCacheFor(CanopyCrum canopyCrum)
If the cache contains canopyCrum, it must be updated
because canopyCrum has new parents. For now, just
invalidate the cache.


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

make

public static Heaper make()


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