DIRECTORY AlpineEnvironment USING [AccessRights, Conversation, FileID, LockOption, OpenFileID, RecoveryOption, ReferencePattern, VolumeID], AlpineInternal USING[FileHandle, FileInstanceHandle, OpenFileHandle, TransHandle]; OpenFileMap: CEDAR DEFINITIONS = BEGIN Handle: TYPE = AlpineInternal.OpenFileHandle; BadConversation: --CALLING OR PROGRAMMING-- ERROR; -- from GetAndCheckHandle. HandleNotFound: --CALLING OR PROGRAMMING-- ERROR; -- from GetAndCheckHandle. OpenFileIDNotFound: --CALLING OR PROGRAMMING-- ERROR; -- from GetAndCheckHandle. Initialize: PROCEDURE[numHashSlotsDesired: NAT]; Register: PROCEDURE [conversation: AlpineEnvironment.Conversation, trans: AlpineInternal.TransHandle, volumeID: AlpineEnvironment.VolumeID, fileID: AlpineEnvironment.FileID] RETURNS [handle: Handle, openFileID: AlpineEnvironment.OpenFileID]; Unregister: PROCEDURE [handle: Handle]; GetAndCheckHandle: PROCEDURE [conversation: AlpineEnvironment.Conversation, openFileID: AlpineEnvironment.OpenFileID] RETURNS [handle: Handle]; ChangeTransaction: PROCEDURE [handle: Handle, trans: AlpineInternal.TransHandle]; GetTransHandle: PROCEDURE [handle: Handle] RETURNS [trans: AlpineInternal.TransHandle]; GetFileInstanceHandle: PROCEDURE [handle: Handle] RETURNS [fileHandle: AlpineInternal.FileInstanceHandle]; GetFileHandle: PROCEDURE [handle: Handle] RETURNS [fileHandle: AlpineInternal.FileHandle]; GetVolumeID: PROCEDURE [handle: Handle] RETURNS [volumeID: AlpineEnvironment.VolumeID]; GetFileID: PROCEDURE [handle: Handle] RETURNS [fileID: AlpineEnvironment.FileID]; GetVolumeIDAndFileID: PROCEDURE [handle: Handle] RETURNS [volumeID: AlpineEnvironment.VolumeID, fileID: AlpineEnvironment.FileID]; GetConversation: PROCEDURE [handle: Handle] RETURNS [conversation: AlpineEnvironment.Conversation]; GetAccessRights: PROCEDURE [handle: Handle] RETURNS [access: AlpineEnvironment.AccessRights]; SetAccessRights: PROCEDURE [handle: Handle, access: AlpineEnvironment.AccessRights]; GetLockOption: PROCEDURE [handle: Handle] RETURNS [lock: AlpineEnvironment.LockOption]; SetLockOption: PROCEDURE [handle: Handle, lock: AlpineEnvironment.LockOption]; GetRecoveryOption: PROCEDURE [handle: Handle] RETURNS [recovery: AlpineEnvironment.RecoveryOption]; SetRecoveryOption: PROCEDURE [handle: Handle, recovery: AlpineEnvironment.RecoveryOption]; GetReferencePattern: PROCEDURE [handle: Handle] RETURNS [referencePattern: AlpineEnvironment.ReferencePattern]; SetReferencePattern: PROCEDURE [handle: Handle, referencePattern: AlpineEnvironment.ReferencePattern]; GetNextHandleForTrans: PROCEDURE [trans: AlpineInternal.TransHandle, handle: Handle _ NIL] RETURNS [nextHandle: Handle]; END. ΪOpenFileMap.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last edited by Taft on October 25, 1982 11:06 am MBrown on 12-Feb-82 17:31:47 Kolling on November 12, 1982 4:35 pm Hauser, March 8, 1985 10:59:47 am PST Errors: errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: HandleNotFound. Check validity of conversation and openFileID. errors defined in this interface: BadConversation, OpenFileIDNotFound. Raises OpenFileIDNotFound if invalid openFileID; raises BadConversation if conversation does not match the one in the OpenFileMap data structure for this openFileID. Returned Handle is guaranteed valid as long as caller holds onto it. errors defined in this interface: none. Causes the existing OpenFileObject to be registered with a new transaction trans, including the suitable unregistration/registration calls on FileInstance and FileMap. Access to attributes that can change, but aren't exactly "read/write." errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. Access to immutable attributes. errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. Access to read/write attributes. errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. reads ifConflict from the OpenFileObject and LockMode from the FileInstanceObject. errors defined in this interface: none. sets ifConflict in the OpenFileObject and LockMode in the FileInstanceObject. errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. errors defined in this interface: none. Enumeration. errors defined in this interface: none. handle = NIL starts a new enumeration, and nextHandle = NIL is returned when the enumeration is exhausted. The only guaranteed property of the enumeration is that all Handles in existence during the entire enumeration will be visited at least once; some handles may be seen more than once. Hauser, March 8, 1985 10:59:30 am PST Nodified, added copyright. Κ˜šœ™Icodešœ Οmœ1™<—šœ™Jšœ!™!Jšœ™Jšœ$™$K™%—J˜J˜šΟk ˜ ˜šžœM˜RJ˜——˜Jšžœ>˜CJ˜J˜——Jšœ žœž œ˜ J˜Jšž˜J˜J˜Jšœžœ!˜-J˜J˜Jšœ™J˜JšœΟcœžœŸ˜NJšœŸœžœŸ˜MJšœŸœžœŸ˜QJ˜J˜J˜šΟn œž œžœ˜0Jšœ'™'J˜—J™J˜š œž œ6˜IJ˜IJšœžœ˜>J˜—Jšœ(™(J˜Jš  œž œ˜'Jšœ2™2J˜J˜J˜Jšœ.™.J˜š œž œ;˜WJšœžœ˜7—JšœG™GJšœ¦™¦JšœD™DJ˜J˜J˜Jš œž œ5˜QJšœ(™(Jšœ§™§J˜J˜J˜JšœF™FJ˜Jš œž œžœ%˜WJšœ(™(J˜š œž œžœ ˜FJ˜#—Jšœ(™(J˜Jš  œž œžœ)˜ZJšœ(™(J˜J˜J˜Jšœ™J˜š  œž œžœ ˜:J˜—Jšœ(™(J˜Jš  œž œžœ$˜QJšœ(™(J˜š œž œžœ ˜CJ˜>—Jšœ'™'J˜š œž œžœ˜BJ˜ —Jšœ(™(J˜J˜J˜Jšœ ™ J˜š œž œžœ ˜