org.abora.gold.primtab
Class PrimPtrTable

java.lang.Object
  |
  +--org.abora.gold.java.AboraHeaper
        |
        +--org.abora.gold.xpp.basic.Heaper
              |
              +--org.abora.gold.primtab.PrimPtrTable

public class PrimPtrTable
extends Heaper

Map integers to strong or weak pointers


Field Summary
protected  XnExecutor myExecutor
           
protected  IntegerVarArray myIndices
           
protected  PtrArray myPtrs
           
protected  byte myTally
           
 
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
PrimPtrTable(int size)
           
PrimPtrTable(int size, XnExecutor executor)
           
 
Method Summary
 int actualHashForEqual()
           
 void atIntroduce(IntegerVar index, Heaper ptr)
           
 void atStore(IntegerVar index, Heaper ptr)
           
 void clearAll()
          Clear all entries from the table.
 int count()
           
 void destruct()
          Classes should implement this message rather than a destructor.
 Heaper fetch(IntegerVar index)
           
 Heaper get(IntegerVar index)
           
 void grow()
           
 int hashFind(IntegerVar value)
           
static Heaper make(int size)
           
 void remove(IntegerVar index)
           
 PrimPtrTableStepper stepper()
           
static PrimPtrTable weak(int size)
           
static PrimPtrTable weak(int size, XnExecutor executor)
           
 void weakRemove(int index, XnExecutor follower)
          By way of a weird kluge, this passes the index that the item was stored at in this table
to the follow up executor
 void wipe(IntegerVar index)
           
 
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, 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

myPtrs

protected PtrArray myPtrs

myIndices

protected IntegerVarArray myIndices

myTally

protected byte myTally

myExecutor

protected XnExecutor myExecutor
Constructor Detail

PrimPtrTable

public PrimPtrTable(int size)

PrimPtrTable

public PrimPtrTable(int size,
                    XnExecutor executor)
Method Detail

atIntroduce

public void atIntroduce(IntegerVar index,
                        Heaper ptr)

atStore

public void atStore(IntegerVar index,
                    Heaper ptr)

clearAll

public void clearAll()
Clear all entries from the table. I know this looks like a hack, but the
alternative is to throw away the table and build a new one: an expensive
prospect for comm.


count

public int count()

fetch

public Heaper fetch(IntegerVar index)

get

public Heaper get(IntegerVar index)

remove

public void remove(IntegerVar index)

wipe

public void wipe(IntegerVar index)

destruct

public void destruct()
Description copied from class: Heaper
Classes should implement this message rather than a destructor. We use this so
the destruction behavior implemented in abstract superclasses can access the
vtable of the concrete run-time type in C++. Using a message makes C++
parallel the Smalltalk semantics for delete. Destroy will actually call the destructor.

Overrides:
destruct in class Heaper

grow

public void grow()

hashFind

public int hashFind(IntegerVar value)

stepper

public PrimPtrTableStepper stepper()

weakRemove

public void weakRemove(int index,
                       XnExecutor follower)
By way of a weird kluge, this passes the index that the item was stored at in this table
to the follow up executor


actualHashForEqual

public int actualHashForEqual()
Overrides:
actualHashForEqual in class Heaper

weak

public static PrimPtrTable weak(int size)

make

public static Heaper make(int size)

weak

public static PrimPtrTable weak(int size,
                                XnExecutor executor)


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