-- File DBStorageField.mesa
-- Contents: ops on DBStorage.FieldObject's used by modules that don't export FieldObjects.
-- Last edited by:
--  MBrown on June 10, 1980  3:36 PM
--  Cattell on September 14, 1983 3:21 pm


  DIRECTORY
    DBStorage USING[FieldHandle],
    DBStorageConcrete USING[FieldType],
    DBStorageTID USING[TID];

DBStorageField: DEFINITIONS = BEGIN


  TuplesetFieldHandle: PROC[] RETURNS[DBStorage.FieldHandle];
    -- Returns a field handle that may be used to access the tupleset object of a tuple.

  IndexFieldHandle: PROC[] RETURNS[DBStorage.FieldHandle];
    -- Returns a field handle that may be used to access the index object of a tuple.

  CheckFieldHandleType: PROC[fh: DBStorage.FieldHandle, t: DBStorageConcrete.FieldType];
    -- Generates an ERROR if fh's fieldType is not t.

  FieldOffset: PROC[fh: DBStorage.FieldHandle] RETURNS[CARDINAL];

  NWordsInField: PROC[fh: DBStorage.FieldHandle] RETURNS[CARDINAL];

  GroupIDOfField: PROC[fh: DBStorage.FieldHandle] RETURNS[DBStorageTID.TID];

END.--DBStorageField


CHANGE LOG

Created by MBrown on June 8, 1980  10:34 PM
-- Moved all field handle definitions here from DBStoragePrivateA.  This seems to be the cheapest
--available experiment with exported types and machine-dependent enmumerations, since the field handle
--stuff is well localized in the implementation.  Moved CopyFieldObject here from StorageImplB.
--Added FreeFieldObject.  (This "cheap" experiment involves changes to 7 modules!)

Changed by MBrown on June 10, 1980  3:35 PM
-- Moved all type definitions to DBStorageConcreteField.

Changed by Cattell on September 14, 1983 3:09 pm
-- Don't need CopyFieldObject, FreeFieldObject any more: FieldHandles are REFs.