DIRECTORY AlpineEnvironment, AlpineEnvironmentP2201V1, Rope; CrAEToAE: CEDAR DEFINITIONS IMPORTS Rope ~ BEGIN OPEN AE: AlpineEnvironment, CrAE: AlpineEnvironmentP2201V1; Principal: PROC [in: CrAE.Principal] RETURNS [out: AE.Principal] ~ INLINE { RETURN[in] }; FileStore: PROC [in: CrAE.FileStore] RETURNS [out: AE.FileStore] ~ INLINE { RETURN[in] }; RName: PROC [in: CrAE.RName] RETURNS [out: AE.RName] ~ INLINE { RETURN[in] }; OwnerName: PROC [in: CrAE.OwnerName] RETURNS [out: AE.OwnerName] ~ INLINE { IF in.InlineLength[] = 0 THEN RETURN[NIL]; RETURN[in] }; AccessList: PROC [in: CrAE.AccessList] RETURNS [out: AE.AccessList] ~ INLINE { out _ NIL; FOR i: CARDINAL DECREASING IN [0..in.length) DO out _ CONS[RName[in[i]], out]; ENDLOOP; }; VolOrVolGroupID: PROC [in: CrAE.VolOrVolGroupID] RETURNS [out: AE.VolOrVolGroupID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; VolumeID: PROC [in: CrAE.VolumeID] RETURNS [out: AE.VolumeID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; VolumeIDs: PROC [in: CrAE.VolumeIDs] RETURNS [out: LIST OF AE.VolumeID] ~ INLINE { out _ NIL; FOR i: CARDINAL DECREASING IN [0..in.length) DO out _ CONS[VolumeID[in[i]], out]; ENDLOOP; }; VolumeGroupID: PROC [in: CrAE.VolumeGroupID] RETURNS [out: AE.VolumeGroupID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; FileID: PROC [in: CrAE.FileID] RETURNS [out: AE.FileID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; UniversalFile: PROC [in: CrAE.UniversalFile] RETURNS [out: AE.UniversalFile] ~ INLINE { RETURN[LOOPHOLE[in]]; }; PageNumber: PROC [in: CrAE.PageNumber] RETURNS [out: AE.PageNumber] ~ INLINE { RETURN[LOOPHOLE[in]]; }; PageCount: PROC [in: CrAE.PageCount] RETURNS [out: AE.PageCount] ~ INLINE { RETURN[LOOPHOLE[in]]; }; PageRun: PROC [in: CrAE.PageRun] RETURNS [out: AE.PageRun] ~ INLINE { RETURN[LOOPHOLE[in]]; }; Property: PROC [in: CrAE.Property] RETURNS [out: AE.Property] ~ INLINE { out _ SELECT in FROM byteLength => byteLength, createTime => createTime, highWaterMark => highWaterMark, modifyAccess => modifyAccess, owner => owner, readAccess => readAccess, stringName => stringName, version => version, ENDCASE => ERROR; }; PropertySet: PROC [in: CrAE.PropertySet] RETURNS [out: PACKED ARRAY AE.Property OF BOOLEAN] ~ INLINE { FOR prop: CrAE.Property IN CrAE.Property DO out[Property[prop]] _ in[LOOPHOLE[prop]]; ENDLOOP; }; PropertyValuePair: PROC [in: CrAE.PropertyValuePair] RETURNS [out: AE.PropertyValuePair] ~ TRUSTED INLINE { WITH pvp: in SELECT FROM byteLength => out _ [byteLength[ByteCount[pvp.byteLength]]]; createTime => out _ [createTime[LOOPHOLE[pvp.createTime]]]; highWaterMark => out _ [highWaterMark[PageCount[pvp.highWaterMark]]]; modifyAccess => out _ [modifyAccess[AccessList[pvp.modifyAccess]]]; owner => out _ [owner[OwnerName[pvp.owner]]]; readAccess => out _ [readAccess[AccessList[pvp.readAccess]]]; stringName => out _ [stringName[pvp.stringName]]; version => out _ [version[FileVersion[pvp.version]]]; ENDCASE => ERROR; }; Properties: PROC [in: CrAE.Properties] RETURNS [out: LIST OF AE.PropertyValuePair] ~ INLINE { out _ NIL; FOR i: CARDINAL DECREASING IN [0..in.length) DO out _ CONS[PropertyValuePair[in[i]], out]; ENDLOOP; }; ByteCount: PROC [in: CrAE.ByteCount] RETURNS [out: AE.ByteCount] ~ INLINE { RETURN[in]; }; FileVersion: PROC [in: CrAE.FileVersion] RETURNS [out: AE.FileVersion] ~ INLINE { RETURN[in]; }; OpenFileID: PROC [in: CrAE.OpenFileID] RETURNS [out: AE.OpenFileID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; AccessRights: PROC [in: CrAE.AccessRights] RETURNS [out: AE.AccessRights] ~ INLINE { out _ SELECT in FROM readOnly => readOnly, readWrite => readWrite, ENDCASE => ERROR; }; LockMode: PROC [in: CrAE.LockMode] RETURNS [out: AE.LockMode] ~ INLINE { out _ SELECT in FROM none => none, read => read, update => update, write => write, readIntendUpdate => readIntendUpdate, readIntendWrite => readIntendWrite, intendRead => intendRead, intendUpdate => intendUpdate, intendWrite => intendWrite, ENDCASE => ERROR; }; LockOption: PROC [in: CrAE.LockOption] RETURNS [out: AE.LockOption] ~ INLINE { out _ [mode ~ LockMode[in.mode], ifConflict ~ SELECT in.ifConflict FROM wait => wait, fail => fail, ENDCASE => ERROR]; }; RecoveryOption: PROC [in: CrAE.RecoveryOption] RETURNS [out: AE.RecoveryOption] ~ INLINE { out _ SELECT in FROM log => log, noLog => noLog, ENDCASE => ERROR; }; ReferencePattern: PROC [in: CrAE.ReferencePattern] RETURNS [out: AE.ReferencePattern] ~ INLINE { out _ SELECT in FROM random => random, sequential => sequential, ENDCASE => ERROR; }; OwnerProperty: PROC [in: CrAE.OwnerProperty] RETURNS [out: AE.OwnerProperty] ~ INLINE { out _ SELECT in FROM createAccessList => createAccessList, modifyAccessList => modifyAccessList, quota => quota, spaceInUse => spaceInUse, rootFile => rootFile, ENDCASE => ERROR; }; OwnerPropertyValuePair: PROC [in: CrAE.OwnerPropertyValuePair] RETURNS [out: AE.OwnerPropertyValuePair] ~ TRUSTED INLINE { WITH opvp: in SELECT FROM createAccessList => out _ [createAccessList[AccessList[opvp.createAccessList]]]; modifyAccessList => out _ [modifyAccessList[AccessList[opvp.modifyAccessList]]]; quota => out _ [quota[PageCount[opvp.quota]]]; spaceInUse => out _ [spaceInUse[PageCount[opvp.spaceInUse]]]; rootFile => out _ [rootFile[UniversalFile[opvp.rootFile]]]; ENDCASE => ERROR; }; OwnerPropertySet: PROC [in: CrAE.OwnerPropertySet] RETURNS [out: AE.OwnerPropertySet] ~ INLINE { FOR prop: CrAE.OwnerProperty IN CrAE.OwnerProperty DO out[OwnerProperty[prop]] _ in[LOOPHOLE[prop]]; ENDLOOP; }; OwnerProperties: PROC [in: CrAE.OwnerProperties] RETURNS [out: LIST OF AE.OwnerPropertyValuePair] ~ INLINE { out _ NIL; FOR i: CARDINAL DECREASING IN [0..in.length) DO out _ CONS[OwnerPropertyValuePair[in[i]], out]; ENDLOOP; }; TransID: PROC [in: CrAE.TransID] RETURNS [out: AE.TransID] ~ INLINE { RETURN[LOOPHOLE[in]]; }; Outcome: PROC [in: CrAE.Outcome] RETURNS [out: AE.Outcome] ~ INLINE { out _ SELECT in FROM abort => abort, commit => commit, unknown => unknown, ENDCASE => ERROR }; CommitOrAbort: PROC [in: CrAE.CommitOrAbort] RETURNS [out: AE.CommitOrAbort] ~ INLINE { out _ SELECT in FROM abort => abort, commit => commit, ENDCASE => ERROR }; WorkerState: PROC [in: CrAE.WorkerState] RETURNS [out: AE.WorkerState] ~ INLINE { out _ SELECT in FROM notReady => notReady, readOnlyReady => readOnlyReady, ready => ready, ENDCASE => ERROR }; NeededAccess: PROC [in: CrAE.NeededAccess] RETURNS [out: AE.NeededAccess] ~ INLINE { out _ SELECT in FROM alpineWheel => alpineWheel, fileModify => fileModify, fileRead => fileRead, handleReadWrite => handleReadWrite, ownerCreate => ownerCreate, ownerEntry => ownerEntry, spaceQuota => spaceQuota, ENDCASE => ERROR }; OperationFailure: PROC [in: CrAE.OperationFailure] RETURNS [out: AE.OperationFailure] ~ INLINE { out _ SELECT in FROM busy => busy, damagedLeaderPage => damagedLeaderPage, duplicateOwner => duplicateOwner, duplicateVolumeGroup => duplicateVolumeGroup, duplicateVolume => duplicateVolume, inconsistentDescriptor => inconsistentDescriptor, volumeFragmented => volumeFragmented, insufficientSpace => insufficientSpace, nonexistentFilePage => nonexistentFilePage, notAlpineWheel => notAlpineWheel, ownerDatabaseFull => ownerDatabaseFull, ownerFileFormatOrVolGroupMismatch => ownerFileFormatOrVolGroupMismatch, ownerRecordFull => ownerRecordFull, ownerRecordInUse => ownerRecordInUse, quotaExceeded => quotaExceeded, regServersUnavailable => regServersUnavailable, spaceInUseByThisOwner => spaceInUseByThisOwner, tooManyRNames => tooManyRNames, totalQuotaExceeded => totalQuotaExceeded, unwritableProperty => unwritableProperty, ENDCASE => ERROR }; LockFailure: PROC [in: CrAE.LockFailure] RETURNS [out: AE.LockFailure] ~ INLINE { out _ SELECT in FROM conflict => conflict, timeout => timeout, ENDCASE => ERROR }; UnknownType: PROC [in: CrAE.UnknownType] RETURNS [out: AE.UnknownType] ~ INLINE { out _ SELECT in FROM coordinator => coordinator, fileID => fileID, openFileID => openFileID, owner => owner, transID => transID, volumeID => volumeID, volumeGroupID => volumeGroupID, ENDCASE => ERROR }; END. BCrAEToAE.mesa Carl Hauser, November 9, 1987 4:59:27 pm PST Κ Q˜šœ ™ Icode™,—šΟk ˜ Kšœ˜Kšœ˜K˜—K™KšΟnœœ˜(šœ˜Kšœœžœ˜;K˜š ž œœœ œœ˜KKšœ˜ K˜K˜—š ž œœœ œœ˜KKšœ˜ K˜K˜—š žœœœœœ˜?Kšœ˜ K˜K˜—š ž œœœ œœ˜KKšœœœœ˜*Kšœ˜ K˜K˜—š ž œœœ œœ˜NKšœœ˜ š œœ œœ˜/Kšœœ˜Kšœ˜—K˜K˜—š žœœœœœ˜]Kšœœ˜K˜K˜—š žœœœ œœ˜HKšœœ˜K˜K˜—šž œœœœ˜RKšœœ˜ š œœ œœ˜/Kšœœ˜!Kšœ˜—K˜K˜—š ž œœœœœ˜WKšœœ˜K˜K˜—š žœœœ œœ˜BKšœœ˜K˜K˜—š ž œœœœœ˜WKšœœ˜K˜K˜—š ž œœœ œœ˜NKšœœ˜K˜K˜—š ž œœœ œœ˜KKšœœ˜K˜K˜—š žœœœ œœ˜EKšœœ˜K˜K˜—š žœœœ œœ˜Hšœœ˜K˜K˜K˜K˜K˜K˜Kšœ˜Kšœ˜Kšœœ˜—K˜K˜—šž œœœœœœ œœœ˜fšœœ˜+Kšœœ˜)Kšœ˜—K˜K˜—š žœœœœœœ˜kšœ œ˜Kšœ<˜˜>Kšœ<˜