-- AlpTransaction.mesa -- Last edited by -- Kolling on May 2, 1983 12:30 pm DIRECTORY AlpineEnvironment USING[allOwnerProperties, CommitOrAbort, FileStore, LockFailure, LockOption, NeededAccess, nullVolumeGroupID, OperationFailure, Outcome, OwnerName, OwnerPropertySet, OwnerPropertyValuePair, PageCount, TransID, UnknownType, VolumeID, VolumeGroupID], AlpInstance USING[Handle], AlpineTransaction USING[RequestedOutcome]; AlpTransaction: DEFINITIONS = BEGIN allOwnerProperties: OwnerPropertySet = AlpineEnvironment.allOwnerProperties; FileStore: TYPE = AlpineEnvironment.FileStore; LockOption: TYPE = AlpineEnvironment.LockOption; nullVolumeGroupID: VolumeGroupID = AlpineEnvironment.nullVolumeGroupID; Outcome: TYPE = AlpineEnvironment.Outcome; OwnerName: TYPE = AlpineEnvironment.OwnerName; OwnerPropertySet: TYPE = AlpineEnvironment.OwnerPropertySet; OwnerPropertyValuePair: TYPE = AlpineEnvironment.OwnerPropertyValuePair; PageCount: TYPE = AlpineEnvironment.PageCount; RequestedOutcome: TYPE = AlpineTransaction.RequestedOutcome; TransID: TYPE = AlpineEnvironment.TransID; VolumeID: TYPE = AlpineEnvironment.VolumeID; VolumeGroupID: TYPE = AlpineEnvironment.VolumeGroupID; AccessFailed: ERROR [missingAccess: AlpineEnvironment.NeededAccess]; LockFailed: ERROR [why: AlpineEnvironment.LockFailure]; OperationFailed: ERROR [why: AlpineEnvironment.OperationFailure]; StaticallyInvalid: ERROR; Unknown: ERROR [what: AlpineEnvironment.UnknownType]; PossiblyDamaged: SIGNAL; Handle: TYPE = REF Object; Object: TYPE = RECORD[inst: AlpInstance.Handle, transID: TransID]; -- in addition to the errors documented for the corresponding Alpine procedures, all of the procedures defined in this interface can also error RPC.CallFailed[RPC.CallFailure]. At the moment, Alpine ignores the transID and lock parameters for GetVolumeGroup, GetNextVolumeGroup, and GetEnclosingVolumeGroup. Create: PROCEDURE [instHandle: AlpInstance.Handle, createLocalWorker: BOOLEAN _ TRUE, zone: ZONE _ NIL] RETURNS [handle: Handle]; CreateWithTransID: PROCEDURE [instHandle: AlpInstance.Handle, transID: TransID, createLocalWorker: BOOLEAN _ TRUE, zone: ZONE _ NIL] RETURNS [handle: Handle]; CreateWorker: PROCEDURE[handle: Handle, coordinator: FileStore]; Finish: PROCEDURE[handle: Handle, requestedOutcome: RequestedOutcome, continue: BOOLEAN _ FALSE] RETURNS[outcome: Outcome]; AssertAlpineWheel: PROCEDURE[handle: Handle, enable: BOOLEAN]; GetVolumeGroup: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, lock: LockOption _ [none, wait]] RETURNS[volumes: LIST OF VolumeID]; GetNextVolumeGroup: PROCEDURE[handle: Handle, previousGroup: VolumeGroupID _ nullVolumeGroupID, lock: LockOption _ [none, wait]] RETURNS[volumeGroupID: VolumeGroupID]; GetEnclosingVolumeGroup: PROCEDURE[handle: Handle, volumeID: VolumeID, lock: LockOption _ [none, wait]] RETURNS[volumeGroupID: VolumeGroupID]; CreateOwner: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, owner: OwnerName, properties: LIST OF OwnerPropertyValuePair, enforceTotalQuota: BOOLEAN _ FALSE] RETURNS[spaceLeftOnVolumeGroup: PageCount]; DestroyOwner: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, owner: OwnerName]; ReadNextOwner: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, previousOwner: OwnerName _ NIL, desiredProperties: OwnerPropertySet _ allOwnerProperties] RETURNS[owner: OwnerName, properties: LIST OF OwnerPropertyValuePair]; ReadOwnerProperties: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, owner: OwnerName, desiredProperties: OwnerPropertySet _ allOwnerProperties] RETURNS[properties: LIST OF OwnerPropertyValuePair]; WriteOwnerProperties: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, owner: OwnerName, overCommitQuotasIfNeeded: BOOLEAN _ FALSE, properties: LIST OF OwnerPropertyValuePair]; ReadOwnerDBProperties: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID] RETURNS[nOwners, nEntriesUsed, nEntries: NAT, totalQuota, totalSpaceInUse, volumeGroupSize: PageCount]; ReorganizeOwnerDB: PROCEDURE[handle: Handle, volumeGroupID: VolumeGroupID, nEntries: NAT]; END. Edit Log Initial: Kolling: February 14, 1983 3:56 pm: package to aid clients, in conjunction with AlpInstance and AlpFile.