|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||
java.lang.Object
|
+--org.abora.gold.java.AboraHeaper
|
+--org.abora.gold.xpp.basic.Heaper
|
+--org.abora.gold.collection.tables.ScruTable
|
+--org.abora.gold.collection.tables.MuTable
|
+--org.abora.gold.collection.tables.HashTable
|
+--org.abora.gold.collection.tables.ActualHashTable
The HashTable is an implementation class that is intended to provide the weakest
Position->Object mapping. It can map from arbitrary Position classes (such as
HeaperAsPosition or TreePosition). HashTable can also be used for very sparse integer
domains.
HashTable, and the entire hashtab module, is private implementation. Not to be included
by clients.
| Field Summary | |
protected CoordinateSpace |
myCoordinateSpace
|
protected SharedPtrArray |
myHashEntries
|
protected int |
myTally
|
| Fields inherited from class org.abora.gold.collection.tables.MuTable |
AlreadyInTableSignal, NotInDomainSignal, NullInsertionSignal |
| Fields inherited from class org.abora.gold.collection.tables.ScruTable |
NotInTableSignal, WrongCoordSpaceSignal |
| 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 | |
ActualHashTable(Rcvr receiver)
|
|
ActualHashTable(SharedPtrArray entries,
int tally,
CoordinateSpace cs)
|
|
| Method Summary | |
void |
aboutToWrite()
If my contents are shared, and I'm about to change them, make a copy of them. |
Heaper |
atIntStore(IntegerVar key,
Heaper aHeaper)
Unboxed version. |
Heaper |
atStore(Position key,
Heaper aHeaper)
Associate value with key, whether or not there is a previous association. |
void |
checkSize()
|
CoordinateSpace |
coordinateSpace()
The kind of elements used to index into the table are Positions of this coordinate space. |
ScruTable |
copy()
A new one whose initial state is my current state, but that doesn't track changes. |
IntegerVar |
count()
Return the number of domain elements, which is to say, the number of associations. 'table->count()' should be equivalent to 'table->domain()->count()'. Used to say: 'Return the number of range elements'. |
void |
destruct()
Classes should implement this message rather than a destructor. |
XnRegion |
domain()
Return an XuRegion representing a snapshot of the current domain. 'table->domain()->hasMember(p)' iff 'table->fetch(p) !!= NULL'. |
ScruTable |
emptySize(IntegerVar size)
Return an empty table just like the current one. |
int |
fastHash()
|
Heaper |
fetch(Position key)
Return the range element at the domain position key. |
boolean |
includesKey(Position aKey)
includesKey is used to test for the presence of a key->value pair in the table. |
void |
inspect()
|
Heaper |
intFetch(IntegerVar key)
Unboxed version. |
boolean |
isEmpty()
Is there anything in the table? 'table->isEmpty()' iff 'table->domain()->isEmpty()'. |
static Heaper |
make(CoordinateSpace cs)
A new empty MuTable whose domain space is 'cs'. |
static Heaper |
make(CoordinateSpace cs,
IntegerVar size)
|
void |
printOn(java.io.PrintWriter oo)
|
void |
receiveHashTable(Rcvr rcvr)
This currently doesn't take advantage of the optimizations in TableEntries. |
XnRegion |
runAt(Position index)
Return the length of the run starting at position key. |
void |
sendHashTable(Xmtr xmtr)
This currently doesn't take advantage of the optimizations in TableEntries. |
void |
sendSelfTo(Xmtr xmtr)
do nothing |
TableStepper |
stepper(OrderSpec order)
ignore order spec for now |
void |
storeEntry(TableEntry anEntry)
Store the tableentry into the entry table |
ScruTable |
subTable(XnRegion region)
Return a table which contains only the intersection of this table's domain and the domain specified by 'region'. table->subTable(r)->domain()->isEqual( table->domain()->intersect(r) ). It is unspecified whether the resulting table starts as a snapshot of a subset of me, after which we go our own ways; or whether the resulting table is a view onto a subset of me, such that changes to me are also visible to him. |
Heaper |
theOne()
Iff I contain exactly one range element, return it. |
boolean |
wipe(Position aKey)
Remove a key->value association from the table. Do not blast (or do anything else) if the key is not in my current domain. |
| Methods inherited from class org.abora.gold.collection.tables.HashTable |
initTimeNonInherited |
| Methods inherited from class org.abora.gold.collection.tables.MuTable |
actualHashForEqual, asImmuTable, asMuTable, atIntIntroduce, atIntReplace, atIntroduce, atReplace, includesIntKey, intRemove, introduceAll, introduceAll, introduceAll, intWipe, isEqual, make, problems, remove, removeAll, replaceAll, replaceAll, replaceAll, runAtInt, storeAll, storeAll, storeAll, test, wipeAll |
| Methods inherited from class org.abora.gold.collection.tables.ScruTable |
asOrderedCollection, backfollowFrom, contentsEqual, contentsHash, dox, get, intGet, isEqual, printOnWithSimpleSyntax, printOnWithSyntax, range, stepper, transformedBy |
| Methods inherited from class org.abora.gold.java.AboraHeaper |
asOop, basicInspect, displayString, 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 |
protected SharedPtrArray myHashEntries
protected int myTally
protected CoordinateSpace myCoordinateSpace
| Constructor Detail |
public ActualHashTable(SharedPtrArray entries,
int tally,
CoordinateSpace cs)
public ActualHashTable(Rcvr receiver)
| Method Detail |
public Heaper atStore(Position key,
Heaper aHeaper)
HashTable
atStore in class HashTable
public Heaper atIntStore(IntegerVar key,
Heaper aHeaper)
MuTable
atIntStore in class MuTablepublic CoordinateSpace coordinateSpace()
ScruTable
coordinateSpace in class HashTablepublic IntegerVar count()
ScruTable
count in class HashTablepublic XnRegion domain()
ScruTable
domain in class HashTablepublic Heaper fetch(Position key)
ScruTable
fetch in class HashTablepublic Heaper intFetch(IntegerVar key)
ScruTable
intFetch in class MuTablepublic ScruTable subTable(XnRegion region)
ScruTable
subTable in class HashTablepublic boolean wipe(Position aKey)
HashTable
wipe in class HashTablepublic int fastHash()
public boolean includesKey(Position aKey)
ScruTable
includesKey in class HashTablepublic boolean isEmpty()
ScruTable
isEmpty in class HashTablepublic ScruTable copy()
ScruTable
copy in class HashTablepublic ScruTable emptySize(IntegerVar size)
ScruTable
emptySize in class HashTablepublic void printOn(java.io.PrintWriter oo)
printOn in class ScruTablepublic XnRegion runAt(Position index)
ScruTable
runAt in class HashTablepublic TableStepper stepper(OrderSpec order)
stepper in class HashTablepublic Heaper theOne()
ScruTable
theOne in class HashTablepublic void receiveHashTable(Rcvr rcvr)
public void sendHashTable(Xmtr xmtr)
public void destruct()
Heaper
destruct in class Heaperpublic void aboutToWrite()
public void checkSize()
public void storeEntry(TableEntry anEntry)
public void inspect()
inspect in class AboraHeaperpublic void sendSelfTo(Xmtr xmtr)
Heaper
sendSelfTo in class MuTablepublic static Heaper make(CoordinateSpace cs)
MuTable
public static Heaper make(CoordinateSpace cs,
IntegerVar size)
|
||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||