-- File: DisjointPropDefs.mesa
-- Written by Martin Newell/Dan Fitzpatrick June 1981
-- Last edited: June 25, 1981 2:58 PM

DIRECTORY

DisjointTypes: FROM "DisjointTypes" USING [PropList, PropID];

DisjointPropDefs
: DEFINITIONS =
BEGIN
OPEN DisjointTypes;

AllocPropID: PUBLIC PROCEDURE[] RETURNS[PropID];
--
Returns a unique PropID each time it is called

PutProp
: PUBLIC PROCEDURE [list: LONG POINTER TO PropList, id: PropID, data: UNSPECIFIED];
--
Enters data into list with the specified PropID
--
Any data already in list with the given PropID is overwritten

PutLongProp
: PUBLIC PROCEDURE [list: LONG POINTER TO PropList, id: PropID, data: LONG UNSPECIFIED];
--
Enters long data into list with the specified PropID
--
Any data already in list with the given PropID is overwritten

GetProp
: PUBLIC PROCEDURE [list: PropList, id: PropID] RETURNS[UNSPECIFIED];
--
Finds data with specified PropID from list

GetLongProp
: PUBLIC PROCEDURE [list: PropList, id: PropID] RETURNS[LONG UNSPECIFIED];
--
Finds long data with specified PropID from list

RemoveProp
: PUBLIC PROCEDURE [list: PropList, id: PropID];
--
Removes any data from list with the given PropID

FreePropList
: PUBLIC PROCEDURE [list: PropList];
--
Frees all storage used by list

END.