-- File DBStorageVectags.mesa
-- Last edited by:
  -- MBrown on September 26, 1980  11:23 AM
  -- Cattell on January 14, 1983 2:17 pm


DIRECTORY
  DBEnvironment USING[InternalError],
  DBStorageVec USING[SlotTypeField, TypeOfSlot, VecPage];


DBStorageVectags: DEFINITIONS
 IMPORTS DBEnvironment, DBStorageVec = BEGIN OPEN DBEnvironment;
  -- This interface defines "slot types", i.e. values retrieved by DBStorageVec.TypeOfSlot.
  --Values 0B and 177B are defined in DBStorageVec, since they are of concern only to the
  --Vec allocator.

  MaxTuplesetPerPage: DBStorageVec.SlotTypeField = 171B;
    -- Slots with types IN [1..MaxTuplesetPerPage] point to tuples.
  IndTupleType: DBStorageVec.SlotTypeField = 172B;
    -- The slot points to an indirect tuple **unimplemented.
  LString: DBStorageVec.SlotTypeField = 173B;
    -- The slot points to a local string extension.
  EString: DBStorageVec.SlotTypeField = 174B;
    -- The slot points to an external string extension.
  NonlocalStringExtensonType: DBStorageVec.SlotTypeField = 175B;
    -- The slot points to a nonlocal string extension **unimplemented.
  TSDictType: DBStorageVec.SlotTypeField = 176B;
    -- The slot points to a tupleset dictionary vec.


  AssertVecIsLString: PROC[pagePtr: LONG POINTER TO DBStorageVec.VecPage, slotIndex: CARDINAL] =
   INLINE {
    SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex] FROM
      LString => {};
    ENDCASE => ERROR InternalError; -- BadVecTag
  };--AssertVecIsLString

  AssertVecIsEString: PROC[pagePtr: LONG POINTER TO DBStorageVec.VecPage, slotIndex: CARDINAL] =
   INLINE {
    SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex] FROM
      EString => {};
    ENDCASE => ERROR InternalError; -- BadVecTag
  };--AssertVecIsEString

  AssertVecIsTSDict: PROC[pagePtr: LONG POINTER TO DBStorageVec.VecPage, slotIndex: CARDINAL] =
   INLINE {
    SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex] FROM
      TSDictType => {};
    ENDCASE => ERROR InternalError; -- BadVecTag
  };--AssertVecIsTSDict


END.--DBStorageVectags


CHANGE LOG

Created by MBrown on August 12, 1980  3:37 PM

Changed by MBrown on August 13, 1980  4:49 PM
-- Added AssertVecIsLString, AssertVecIsEString.