... <- IntegerList <- HashTable <- RenumberableHashTable <- RenumberableKeyHashTable <- ClassNumberKeyObjectValueHashTable |
|
|
Init ReadHashEntryAt RehashTable WriteHashEntryAt WriteHashEntryHeaderAt |
|
RenumberablesListClass |
| Field | Type | |
|---|---|---|
| HashTable: | hashEntries: | FixedList |
| hashEntrySize: | Unsigned | |
| lgCount: | Unsigned | |
| entryCount: | Unsigned | |
| firstFreeEntry: | Unsigned | |
| minPercentFull: | UnsignedShort | |
| maxPercentFull: | UnsignedShort | |
| RenumberableHashTable: | renumberables: | FixedList |
| ClassNumberKeyObjectValueHashTable: | objects: | ObjectList |
instance ClassNumberKeyObjectValueHashTable tag; hashEntries: nilObject; hashEntrySize: 0; lgCount: 0; entryCount: 0; firstFreeEntry: 0; minPercentFull: 0; maxPercentFull: 0; renumberables: nilObject; objects: nilObject; end instance;
Define Class ClassNumberKeyObjectValueHashTable; inherits from RenumberableKeyHashTable; // this class can be used for hash tables that have a class number as the key // an an object as the first part of the value // each entry starts with the key, and has the object reference after it // table must be rehashed when class numbers are renumbered field objects: ObjectList; // list of object values, parallel to HashTable_entries and RenumberableHashTable_renumberables overrides Init; // store new list in objects field overrides RenumberablesListClass; // returns ClassNumberList_ so RenumberableHashTable will make us a class number list overrides RehashTable; // sets count of objects field to match count of HashEntries after calling inherited method overrides ReadHashEntryAt; // reads class from renumberables list, object from objects list, // then calls inherited method to read rest of data from HashEntries(self) overrides WriteHashEntryAt; // writes class into renumberables list, object into objects list, // then calls inherited method to store rest of data into HashEntries(self) overrides WriteHashEntryHeaderAt; // clears out entries in objects list that correspond to deleted entries end class;