IMPORTS DBStorageVec =
BEGIN
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] =
TRUSTED
INLINE {
SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex]
FROM
LString => {};
ENDCASE => ERROR DB.InternalError; -- BadVecTag
};--AssertVecIsLString
AssertVecIsEString:
PROC[
pagePtr: LONG POINTER TO DBStorageVec.VecPage,
slotIndex:
CARDINAL] =
TRUSTED
INLINE {
SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex]
FROM
EString => {};
ENDCASE => ERROR DB.InternalError; -- BadVecTag
};--AssertVecIsEString
AssertVecIsTSDict:
PROC[
pagePtr: LONG POINTER TO DBStorageVec.VecPage,
slotIndex:
CARDINAL] =
TRUSTED
INLINE {
SELECT DBStorageVec.TypeOfSlot[pagePtr, slotIndex]
FROM
TSDictType => {};
ENDCASE => ERROR DB.InternalError; -- BadVecTag
};--AssertVecIsTSDict