org.abora.gold.be.canopy
Class SensorCrum

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.snarf.Abraham
                    |
                    +--org.abora.gold.be.canopy.CanopyCrum
                          |
                          +--org.abora.gold.be.canopy.SensorCrum

public class SensorCrum
extends CanopyCrum

This implementation is the same as BertCrums. This will require
pointers into the ent to implement delete (for archiving). Canopy
reorganization could be achieved by removing several orgls, then
re-adding them (archive then restore).


Field Summary
protected  ImmuSet myBackfollowRecorders
           
 
Fields inherited from class org.abora.gold.be.canopy.CanopyCrum
child1, child2, FlagEndorsements, maxH, minH, myFlags, myOwnFlags, myRefCount, OtherClubs, OtherEndorsements, parent, TheEFlagsCache, ThePFlagsCache
 
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
SensorCrum()
          Make a canopyCrum for a root: it has no children.
SensorCrum(int flags)
          Make a canopyCrum for a root: it has no children.
SensorCrum(Rcvr receiver)
           
SensorCrum(SensorCrum first, SensorCrum second)
          Create a new parent for two SensorCrums.
This constructor just makes a new parent whose properties are empty.
 
Method Summary
 CanopyCrum another()
          SensorCrum create verify2.
 CanopyCache canopyCache()
          should have one per Ent
 void changeCanopy(java.lang.Object f)
           
 PropFinder checkRecorders(BeEdition stamp, PropFinder finder, SensorCrum sCrum)
           
 PropFinder checkRecorders(PropFinder finder, SensorCrum scrum)
          Set off all recorders that respond to the change either in me or in any of my ancestors up
to but not including sCrum
(If I am the same as sCrum, skip me as well.)
(If sCrum is null, search through all my ancestors to a root of the sensor canopy.)
return simplest finder for looking at children
 java.lang.String displayString()
           
 SensorCrum fetchNextAfterTriggeringRecorders(BeEdition stamp, PropFinder finder, SensorCrum sCrum)
           
 SensorCrum fetchNextAfterTriggeringRecorders(PropFinder finder, SensorCrum sCrum)
          Set off all recorders in me that respond to the change, if appropriate
(If I am the same as sCrum, skip me.)
If sCrum is null or not me, return my parent so caller can iterate through my ancestors to
sCrum or a root.
static int flagsFor(IDRegion permissions, CrossRegion endorsements, boolean isPartial)
          The flag word corresponding to the given props
 PropChange fullChange()
           
 void inspectMenuArray()
           
 void inspectOParts()
           
 void installRecorders(ImmuSet recorders)
          Installs the recorders in my set and updates myOwnProp accordingly.
The caller has already checked that none of these recorders are already installed here.
The caller also handles updating myFlags.
The caller also handles all issues of rootward propagation of these changes.
The caller also does the 'diskUpdate'.
This is a separate method because it's called once by the code that installs a new
recorder, and again by the code that recursively hoists recurders up the canopy.
add the new recorders to my set
for each new recorder
if it hasn't gone extinct
extract its properties
union them into my own
 boolean isPartial()
           
static int isPartialFlag()
          Flag bit for existence of partiality
static Heaper make()
           
 CanopyCrum makeNew()
           
 CanopyCrum makeNewParent(CanopyCrum first, CanopyCrum second)
          Make a new crum that contains both first and second.
This method just makes a new parent whose properties are empty.
static SensorCrum partial()
           
 void printOn(java.lang.Object aStream)
           
 void record(RecorderFossil recorder)
           
 ImmuSet recorders()
           
 AgendaItem recordingAgent(RecorderFossil recorder)
          NOTE: The AgendaItem returned is not yet scheduled.
 void removeRecorders(ImmuSet recorders)
          Remove recorders because they have migrated rootward.
Recalculate myOwnFlags and myFlags.
 void sendSelfTo(Xmtr xmtr)
          do nothing
static void staticTimeNonInherited()
           
 void triggerRecorders(Stamp stamp, PropFinder finder, SensorCrum sCrum)
           
 
Methods inherited from class org.abora.gold.be.canopy.CanopyCrum
addPointer, changeCanopy, changeCanopy, changeHeight, childArray, children, computeJoin, contentsHash, dismantle, endorsementFlagLimit, endorsementsFlags, expand, fetchChild1, fetchChild2, fetchParent, firstEndorsementsFlag, flags, heightDiff, includeCanopy, initTimeNonInherited, inspect, inspectSubCanopy, isLE, isLeaf, joint, linkTimeNonInherited, makeJoin, maxHeight, minHeight, otherClubsFlag, otherEndorsementsFlag, ownFlags, permissionsFlags, propChanger, publicClubFlag, refCount, removePointer, setOwnFlags, setParent, useEndorsementFlags, verify1, verify2, verifyHeight
 
Methods inherited from class org.abora.gold.snarf.Abraham
actualHashForEqual, becomeStub, cleanupGarbage, destroy, destruct, diskUpdate, dismantleStatistics, fetchInfo, fetchShepherd, flockInfo, forget, getInfo, getShepherdStubCategory, isConstructed, isDestructed, isEqual, isKindOf, isPurgeable, isShepherd, isStub, isUnlocked, newShepherd, remember, restartAbraham, restartAbraham, returnToken, 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, 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

myBackfollowRecorders

protected ImmuSet myBackfollowRecorders
Constructor Detail

SensorCrum

public SensorCrum()
Make a canopyCrum for a root: it has no children.


SensorCrum

public SensorCrum(int flags)
Make a canopyCrum for a root: it has no children.


SensorCrum

public SensorCrum(SensorCrum first,
                  SensorCrum second)
Create a new parent for two SensorCrums.
This constructor just makes a new parent whose properties are empty. My client must bring
my properties up to date.


SensorCrum

public SensorCrum(Rcvr receiver)
Method Detail

another

public CanopyCrum another()
SensorCrum create verify2.

Overrides:
another in class CanopyCrum

displayString

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

inspectMenuArray

public void inspectMenuArray()

inspectOParts

public void inspectOParts()

printOn

public void printOn(java.lang.Object aStream)

canopyCache

public CanopyCache canopyCache()
should have one per Ent

Overrides:
canopyCache in class CanopyCrum

makeNew

public CanopyCrum makeNew()
Overrides:
makeNew in class CanopyCrum

checkRecorders

public PropFinder checkRecorders(PropFinder finder,
                                 SensorCrum scrum)
Set off all recorders that respond to the change either in me or in any of my ancestors up
to but not including sCrum
(If I am the same as sCrum, skip me as well.)
(If sCrum is null, search through all my ancestors to a root of the sensor canopy.)
return simplest finder for looking at children


fetchNextAfterTriggeringRecorders

public SensorCrum fetchNextAfterTriggeringRecorders(PropFinder finder,
                                                    SensorCrum sCrum)
Set off all recorders in me that respond to the change, if appropriate
(If I am the same as sCrum, skip me.)
If sCrum is null or not me, return my parent so caller can iterate through my ancestors to
sCrum or a root.


isPartial

public boolean isPartial()

recorders

public ImmuSet recorders()

recordingAgent

public AgendaItem recordingAgent(RecorderFossil recorder)
NOTE: The AgendaItem returned is not yet scheduled. Doing so is up to my caller.


removeRecorders

public void removeRecorders(ImmuSet recorders)
Remove recorders because they have migrated rootward.
Recalculate myOwnFlags and myFlags.


installRecorders

public void installRecorders(ImmuSet recorders)
Installs the recorders in my set and updates myOwnProp accordingly.
The caller has already checked that none of these recorders are already installed here.
The caller also handles updating myFlags.
The caller also handles all issues of rootward propagation of these changes.
The caller also does the 'diskUpdate'.
This is a separate method because it's called once by the code that installs a new
recorder, and again by the code that recursively hoists recurders up the canopy.
add the new recorders to my set
for each new recorder
if it hasn't gone extinct
extract its properties
union them into my own


makeNewParent

public CanopyCrum makeNewParent(CanopyCrum first,
                                CanopyCrum second)
Description copied from class: CanopyCrum
Make a new crum that contains both first and second.
This method just makes a new parent whose properties are empty. My client must bring my
properties up to date

Overrides:
makeNewParent in class CanopyCrum

checkRecorders

public PropFinder checkRecorders(BeEdition stamp,
                                 PropFinder finder,
                                 SensorCrum sCrum)

fetchNextAfterTriggeringRecorders

public SensorCrum fetchNextAfterTriggeringRecorders(BeEdition stamp,
                                                    PropFinder finder,
                                                    SensorCrum sCrum)

record

public void record(RecorderFossil recorder)

triggerRecorders

public void triggerRecorders(Stamp stamp,
                             PropFinder finder,
                             SensorCrum sCrum)

changeCanopy

public void changeCanopy(java.lang.Object f)

fullChange

public PropChange fullChange()
Overrides:
fullChange in class CanopyCrum

sendSelfTo

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

Overrides:
sendSelfTo in class CanopyCrum

staticTimeNonInherited

public static void staticTimeNonInherited()

make

public static Heaper make()

partial

public static SensorCrum partial()

flagsFor

public static int flagsFor(IDRegion permissions,
                           CrossRegion endorsements,
                           boolean isPartial)
The flag word corresponding to the given props


isPartialFlag

public static int isPartialFlag()
Flag bit for existence of partiality



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