AlpTransaction.mesa
Last edited by
Kolling on June 3, 1983 2:44 pm
Taft on June 2, 1983 11:22 am
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: CEDAR 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: READONLY ERROR [missingAccess: AlpineEnvironment.NeededAccess];
LockFailed: READONLY ERROR [why: AlpineEnvironment.LockFailure];
OperationFailed: READONLY ERROR [why: AlpineEnvironment.OperationFailure];
StaticallyInvalid: READONLY ERROR;
Unknown: READONLY ERROR [what: AlpineEnvironment.UnknownType];
PossiblyDamaged: READONLY 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: BOOLEANTRUE] RETURNS [handle: Handle];
CreateWithTransID: PROCEDURE [instHandle: AlpInstance.Handle, transID: TransID, createLocalWorker: BOOLEANTRUE] RETURNS [handle: Handle];
CreateWorker: PROCEDURE[handle: Handle, coordinator: FileStore];
Finish: PROCEDURE[handle: Handle, requestedOutcome: RequestedOutcome, continue: BOOLEANFALSE] 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: BOOLEANFALSE] 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: BOOLEANFALSE, 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.