-- File DBStorageTuple.mesa
-- Last edited by
-- MBrown on December 3, 1982 9:14 pm
-- Cattell on November 4, 1983 2:27 am
DIRECTORY
DBCache USING [CacheHandle],
DBStorage USING [TupleHandle],
DBStorageTID USING [TID];
DBStorageTuple: DEFINITIONS = BEGIN
-- This interface defines a collection of operations on DBStorage.TupleObjects that
--may be used by storage-level modules that don't export DBStorage.TupleObject.
-- Some modules export DBStorage.TupleObject simply to get read access to the TID without
--the cost of a procedure call, and use these procedures for other accesses.
Init: PROC [freeTuples: NAT];
-- Called from DBStorage.Initialize. Allocate a free pool of freeTuples tuples.
ConsTupleObject: PROC [tid: DBStorageTID.TID, cacheHint: DBCache.CacheHandle ← NIL]
RETURNS [DBStorage.TupleHandle];
-- Returns a handle for a new tuple object with the given tid and cacheHint.
TIDOfTuple: PROC [x: DBStorage.TupleHandle] RETURNS [DBStorageTID.TID];
-- Returns the TID of x.
EqualTuple: PROC [x, y: DBStorage.TupleHandle] RETURNS [BOOLEAN];
-- Returns TIDOfTuple[x] = TIDOfTuple[y].
NullTupleHandle: PROC [] RETURNS [DBStorage.TupleHandle];
-- Returns a TupleHandle x such that TIDOfTuple[x] = NullTID.
-- No caller should modify the contents of this TupleObject in any way!!!
InvalidateMatchingTuples: PROC [x: DBStorage.TupleHandle];
-- For all tuple handles y on active list such that y.tid = x.tid, makes y.tid=NullTID.
IsValidTuple: PROC [x: DBStorage.TupleHandle] RETURNS [valid: BOOL];
-- IF DBSegment.IsValidTID[x.tid] THEN RETURN [valid: TRUE]
-- ELSE { x.tid ← NullTID; RETURN [valid: FALSE] }
InvalidateTuple: PROC [x: DBStorage.TupleHandle];
-- x.tid ← NullTID
CallAfterFinishTransaction: PROC [];
-- Invalidates (by setting tid = NullTID, cacheHint = NIL) all TupleObjects on the active
--list that reference segments that are no longer addressible (because transaction went away).
PrintTupleObject: PROC [t: DBStorage.TupleHandle];
-- Prints t to debug stream, without a terminating CR.
CheckState: PROC [doPrinting: BOOLEAN ← FALSE];
-- Checks internal state of tuple manager; if doPrinting, also prints contents
--of tuple manager to debug stream.
END.--DBStorageTuple
CHANGE LOG
Created by MBrown on June 10, 1980 8:14 PM
-- Moved TIDOfTupleHandle here from DBStoragePrivateA, defined other apparently useful procs.
Changed by MBrown on July 9, 1980 4:32 PM
-- Added Invalidate, for use by tuple deletion.
Changed by MBrown on August 4, 1980 10:25 PM
-- Added ReInitialize, for use by CloseDatabase.
Changed by MBrown on August 14, 1980 2:34 PM
-- Added CheckState, for debugging convenience.
Changed by MBrown on August 20, 1980 8:58 PM
-- Added PrintTupleObject.
Changed by MBrown on September 12, 1980 2:32 PM
-- Added Finalize.
Changed by MBrown on 9-Jun-81 16:20:30
-- Conversion to collectable storage: flushed CopyTupleObject, FreeTupleObject,
--Finalize. Added NullTupleHandle. Fixed comments about function of ReInitialize.
Changed by MBrown on December 2, 1982 2:44 pm
-- Added CallAfterFinishTransaction; flushed ReInitialize.