<> <> <> DIRECTORY AlpineEnvironment, AlpineFile, FileInstance, TransactionMap; LeaderPage: DEFINITIONS = BEGIN LockOption: TYPE = AlpineEnvironment.LockOption; Property: TYPE = AlpineEnvironment.Property; PropertySet: TYPE = AlpineFile.PropertySet; PropertyValuePair: TYPE = AlpineEnvironment.PropertyValuePair; Initialize: PROCEDURE [fileInstance: FileInstance.Handle]; <> <> <> GetProperty: PROCEDURE [fileInstance: FileInstance.Handle, property: Property, lock: LockOption _ [read, wait]] RETURNS [propertyValue: PropertyValuePair]; <> <> GetPropertyList: PROCEDURE [fileInstance: FileInstance.Handle, desiredProperties: PropertySet _ ALL [TRUE], lock: LockOption _ [read, wait]] RETURNS [propertyList: LIST OF PropertyValuePair]; <> SetProperty: PROCEDURE [fileInstance: FileInstance.Handle, propertyValue: PropertyValuePair, lock: LockOption _ [update, wait]]; <> <> SetPropertyList: PROCEDURE [fileInstance: FileInstance.Handle, propertyList: LIST OF PropertyValuePair, lock: LockOption _ [update, wait]]; <> Validate: PROCEDURE [fileInstance: FileInstance.Handle]; <> <> <> Finalize: PROCEDURE [fileInstance: FileInstance.Handle]; <> <> CarryOut: PROCEDURE [fileInstance: FileInstance.Handle]; <> <<>> <> Error: ERROR [errorType: ErrorType]; ErrorType: TYPE = {damaged, full, nameTooLong, notVirginFile, unwritableProperty}; <> validateBeforeEveryOperation: BOOLEAN; validateAfterEveryUpdate: BOOLEAN; END.