Index - All Packages - All Categories - All Classes

Class SplitLoaf


Package: Udanax-Gold
All Superclasses: Object Heaper Abraham OPart Loaf InnerLoaf
Protocols: Object
Categories: Xanadu-Be-Ents

Instance Methods

actualSplay: region with: limitRegion

Make each child completely contained or completely outside
the region. Return the number of children completely in the region.
The transformation table follows:
# in out return operation rearrange
1| 0 0 0 none none
2| 0 1 1 swap #4 (A (B* C)) -> (B* (A C))
3| 0 2 1 swap #7 (A B*) -> (B* A)
4| 1 0 1 rotateRight ((A* B) C) -> (A* (B C))
5| 1 1 1 interleave ((A* B) (C* D)) -> ((A* C*) (B D))
6| 1 2 1 swap #8 ((A* B) C*) -> ((A* C*) B)
7| 2 0 1 none none
8| 2 1 1 rotateLeft (A* (B* C)) -> ((A* B*) C)
9| 2 2 2 none none

Overrides: InnerLoaf

addOParent: oparent

add oparent to the set of upward pointers and update the bertCrums in
southern children.

Overrides: Loaf

attachTrailBlazer: blazer



Overrides: InnerLoaf

bundleStepper: region with: order with: globalDsp

Return a stepper of bundles according to the order.

Overrides: InnerLoaf

checkChildRecorders: finder



Overrides: InnerLoaf

checkTrailBlazer: blazer



Overrides: InnerLoaf

combine: another with: limitRegion with: globalDsp

Break another into pieces according to mySplit, and combine
the corresponding pieces with my children transformed to global
coordinates. Combine the two non-overlapping results.

Overrides: InnerLoaf

compare: trace with: region

return a mapping from my data to corresponding stuff in the given trace

Overrides: InnerLoaf

contentsHash



Overrides: Loaf

count



Overrides: InnerLoaf

create: split with: inLoaf with: outLoaf



Overrides: InnerLoaf

create: split with: inLoaf with: outLoaf with: hcrum


create: split with: inLoaf with: outLoaf with: hcrum with: hash


create: split with: inLoaf with: outLoaf with: hcrum with: hash with: info

Special constructor for becoming this class

createRcvr: receiver



Overrides: InnerLoaf

crums


delayedStoreMatching: finder with: fossil with: recorder with: hCrumCache



Overrides: InnerLoaf

dismantle



Overrides: Loaf

displayString



Overrides: Object

domain



Overrides: InnerLoaf

fetch: key with: edition with: globalKey

Look up the range element for the key. If it is embedded within a virtual
structure, then make a virtual range element using the edition and globalKey.

Overrides: InnerLoaf

fetchBottomAt: key

Return the bottom-most Loaf. Used to get the owner and such of a position.

Overrides: InnerLoaf

fetchTrailBlazer



Overrides: InnerLoaf

fill: keys with: toArrange with: toArray with: globalDsp with: edition

Make an FeRangeElement for each position.

Overrides: InnerLoaf

getBe: key

Get or Make the BeRangeElement at the location.

Overrides: InnerLoaf

informTo: orgl

Copy the enclosure in orgl appropriate for this crum, then hand it down to the
subCrums.

inPart

This effectively copies the region represented by my distinction.

Overrides: InnerLoaf

install: newIn with: newOut with: newSplit

Install new in and out children at the same
time. This will need to be in a critical section. Add me as
parent to the new loaves first in case the only ent reference
to the new loaf is through one of my children (which might
delete it if I'm *their* last reference).

isLeaf


keysLabelled: label

Just search for now.

Overrides: InnerLoaf

makeNew: newIn with: newOut

Make a new crum to replace some existing crums during a splay
operation. The new crum must have the same trace as me to
guarantee the hTree property. Optimization: look at parents of the
new loaves to find a pre-existing parent with the same trace and
wisps. This will coalesce the shearing that splaying causes.

outPart

This is used by the splay algorithms.

Overrides: InnerLoaf

printOn: aStream



Overrides: Object

rangeOwners: positions



Overrides: InnerLoaf

sendSelfTo: xmtr



Overrides: InnerLoaf

setAllOwners: owner

Recur assigning owners. Return the portion of the o-tree that couldn't be assigned.

Overrides: InnerLoaf

sharedRegion: trace with: limitRegion

Return a region describing the stuff I share with the orgl under trace.

Overrides: InnerLoaf

storeRecordingAgents: recorder with: agenda



Overrides: InnerLoaf

swapChildren

This is a support for the splay routine. Swapping the children
reduces the number of cases. This way, if this crum is partially
in a region being splayed, the part contained in the region
resides in the left slot.

testChild: child

Return true if child is a child. Used for debugging.

testHChild: child

Return true if child is a child. Used for debugging.

triggerDetector: detect



Overrides: InnerLoaf

updateBCrumTo: newBCrum

My bertCrum must not be leafward of newBCrum.
Thus it must be LE to newCrum. Otherwise correct it and recur.

Overrides: Loaf

usedDomain



Overrides: InnerLoaf

wait: sensor



Overrides: InnerLoaf


Index - All Packages - All Categories - All Classes