mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 01:29:20 +00:00
91 lines
2.9 KiB
OpenEdge ABL
91 lines
2.9 KiB
OpenEdge ABL
|
{
|
|||
|
File: AEHashTable.p
|
|||
|
|
|||
|
Contains: xxx put contents here xxx
|
|||
|
|
|||
|
Written by: xxx put writers here xxx
|
|||
|
|
|||
|
Copyright: <EFBFBD> 1990 by Apple Computer, Inc., all rights reserved.
|
|||
|
|
|||
|
This file is used in these builds: BigBang
|
|||
|
|
|||
|
Change History (most recent first):
|
|||
|
|
|||
|
<2> 1/7/91 Lai Fix interface for GetIndexedEntry
|
|||
|
<1> 12/13/90 Lai first checked in
|
|||
|
|
|||
|
To Do:
|
|||
|
}
|
|||
|
|
|||
|
{*-------------------------------------------------------------------------------*
|
|||
|
| |
|
|||
|
| <<< Integrated Environment >>> |
|
|||
|
| |
|
|||
|
| Copyright Apple Computer, Inc. 1986, 1987, 1988 |
|
|||
|
| All rights reserved. |
|
|||
|
| |
|
|||
|
*-------------------------------------------------------------------------------*}
|
|||
|
|
|||
|
UNIT AEHashTable;
|
|||
|
INTERFACE
|
|||
|
|
|||
|
Uses
|
|||
|
Types;
|
|||
|
|
|||
|
CONST
|
|||
|
|
|||
|
{ error numbers }
|
|||
|
|
|||
|
ErrAlreadyExists = -1722; { fix this constant }
|
|||
|
ErrNotFound = -1723; { fix this constant }
|
|||
|
ErrEndOfTable = -1724; { fix this constant }
|
|||
|
|
|||
|
TYPE
|
|||
|
HHand = Handle;
|
|||
|
HEntryPtr = Ptr;
|
|||
|
KeyPtr = Ptr;
|
|||
|
HashProc = ProcPtr;
|
|||
|
MemProcs = ^MemProcBlock;
|
|||
|
MemProcBlock = RECORD
|
|||
|
DerefProc: ProcPtr;
|
|||
|
NewProc: ProcPtr;
|
|||
|
GrowProc: ProcPtr;
|
|||
|
DisposeProc: ProcPtr;
|
|||
|
END;
|
|||
|
|
|||
|
HashInfo = RECORD
|
|||
|
usedEntries: LONGINT;
|
|||
|
collidedEntries: LONGINT;
|
|||
|
totalEntries: LONGINT;
|
|||
|
tableSize: LONGINT;
|
|||
|
END;
|
|||
|
|
|||
|
|
|||
|
Function NewHashTable(NumEntries:LONGINT; KeySize, ValueSize:INTEGER;
|
|||
|
MemHooks:MemProcs; SysHeap:Boolean; VAR Table:HHand): OSErr;
|
|||
|
Function DisposeHashTable(VAR Hash:HHand; MemHooks:MemProcs): OSErr;
|
|||
|
|
|||
|
Function AddKeyEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr): OSErr;
|
|||
|
Function ReplaceEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr):OSErr;
|
|||
|
Function RemoveKeyEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr): OSErr;
|
|||
|
Function GetKeyValue(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr): OSErr;
|
|||
|
Function CheckKey(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr): boolean;
|
|||
|
Function GetIndexedEntry(Hash:HHand; MemHooks:MemProcs; Index:LONGINT; Key:KeyPtr): OSErr;
|
|||
|
|
|||
|
IMPLEMENTATION
|
|||
|
|
|||
|
Function NewHashTable(NumEntries:LONGINT; KeySize, ValueSize:INTEGER;
|
|||
|
MemHooks:MemProcs; SysHeap:Boolean; VAR Table:HHand): OSErr; EXTERNAL;
|
|||
|
Function DisposeHashTable(VAR Hash:HHand; MemHooks:MemProcs): OSErr; EXTERNAL;
|
|||
|
|
|||
|
Function AddKeyEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr): OSErr; EXTERNAL;
|
|||
|
Function ReplaceEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr):OSErr; EXTERNAL;
|
|||
|
Function RemoveKeyEntry(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr): OSErr; EXTERNAL;
|
|||
|
Function GetKeyValue(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr; Value:HEntryPtr): OSErr; EXTERNAL;
|
|||
|
Function CheckKey(Hash:HHand; MemHooks:MemProcs; Key:KeyPtr): boolean; EXTERNAL;
|
|||
|
Function GetIndexedEntry(Hash:HHand; MemHooks:MemProcs; Index:LONGINT; Key:KeyPtr): OSErr; EXTERNAL;
|
|||
|
|
|||
|
|
|||
|
END.
|
|||
|
|