<> <> <> <> <> <> DIRECTORY AlpineEnvironment; AlpineVolume: DEFINITIONS = BEGIN Conversation: TYPE = AlpineEnvironment.Conversation; LockOption: TYPE = AlpineEnvironment.LockOption; TransID: TYPE = AlpineEnvironment.TransID; nullTransID: TransID = AlpineEnvironment.nullTransID; VolumeID: TYPE = AlpineEnvironment.VolumeID; VolumeGroupID: TYPE = AlpineEnvironment.VolumeGroupID; nullVolumeGroupID: VolumeGroupID = AlpineEnvironment.nullVolumeGroupID; <<>> <<>> <> GetNextGroup: PROC [conversation: Conversation, transID: TransID _ nullTransID, previousGroup: VolumeGroupID _ nullVolumeGroupID, lock: LockOption _ [none, wait]] RETURNS [volumeGroupID: VolumeGroupID]; <> <> <> GetGroup: PROC [conversation: Conversation, transID: TransID _ nullTransID, volumeGroupID: VolumeGroupID, lock: LockOption _ [none, wait]] RETURNS [volumes: LIST OF VolumeID]; <> <> GetEnclosingGroup: PROC [conversation: Conversation, transID: TransID _ nullTransID, volumeID: VolumeID, lock: LockOption _ [none, wait]] RETURNS [volumeGroupID: VolumeGroupID]; <> <> <> AccessFailed: ERROR [missingAccess: AlpineEnvironment.NeededAccess]; Unknown: ERROR [what: AlpineEnvironment.UnknownType]; StaticallyInvalid: ERROR; END.