DIRECTORY CrRPC, CHNameP2V0, AuthenticationP14V2, AlpineEnvironmentP2201V1, BulkDataP0V1, AlpineP2202V2; AlpineP2202V2ClientAImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS AlpineP2202V2 ~ { OPEN AlpineP2202V2; StaticallyInvalid: PUBLIC StaticallyInvalidType ~ CODE; AccessFailed: PUBLIC AccessFailedType ~ CODE; OperationFailed: PUBLIC OperationFailedType ~ CODE; Unknown: PUBLIC UnknownType ~ CODE; LockFailed: PUBLIC LockFailedType ~ CODE; ConnectionError: PUBLIC ConnectionErrorType ~ CODE; AuthenticationError: PUBLIC AuthenticationErrorType ~ CODE; PossiblyDamaged: PUBLIC PossiblyDamagedType ~ CODE; GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 4 => ERROR StaticallyInvalid[]; 0 => { missingAccess: AlpineEnvironmentP2201V1.NeededAccess; missingAccess _ VAL[CrRPC.GetCard16[s]]; ERROR AccessFailed[missingAccess] }; 2 => { why: AlpineEnvironmentP2201V1.OperationFailure; why _ VAL[CrRPC.GetCard16[s]]; ERROR OperationFailed[why] }; 5 => { what: AlpineEnvironmentP2201V1.UnknownType; what _ VAL[CrRPC.GetCard16[s]]; ERROR Unknown[what] }; 1 => { why: AlpineEnvironmentP2201V1.LockFailure; why _ VAL[CrRPC.GetCard16[s]]; ERROR LockFailed[why] }; 7 => { problem: ConnectionProblem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR ConnectionError[problem] }; 6 => { problem: AuthenticationP14V2.Problem; problem _ VAL[CrRPC.GetCard16[s]]; ERROR AuthenticationError[problem] }; 3 => ERROR PossiblyDamaged[]; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; GetReferencePattern: PUBLIC GetReferencePatternType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; }; GetResults: CrRPC.GetResultsProc ~ { referencePattern _ VAL[CrRPC.GetCard16[s]]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~16 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; WriteProperties: PUBLIC WritePropertiesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; MProc3[h, s, properties]; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~23 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; Logoff: PUBLIC LogoffType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReadProperties: PUBLIC ReadPropertiesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; FOR i4: CARDINAL IN [0..8) DO CrRPC.PutBool[s, desiredProperties[i4]]; ENDLOOP; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; }; GetResults: CrRPC.GetResultsProc ~ { properties _ UProc5[h, s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~22 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetUniversalFile: PUBLIC GetUniversalFileType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i6: CARDINAL IN [0..5) DO universalFile.volumeID.vgid[i6] _ CrRPC.GetCard16[s]; ENDLOOP; FOR i7: CARDINAL IN [0..2) DO universalFile.fileID.id[i7] _ CrRPC.GetCard16[s]; ENDLOOP; FOR i8: CARDINAL IN [0..2) DO universalFile.fileID.da[i8] _ CrRPC.GetCard16[s]; ENDLOOP; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; SetReferencePattern: PUBLIC SetReferencePatternType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; CrRPC.PutCard16[s, ORD[referencePattern]]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~17 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; FinishTransaction: PUBLIC FinishTransactionType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i9: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i9]]; ENDLOOP; CrRPC.PutCard16[s, ORD[requestedOutcome]]; CrRPC.PutBool[s, continue]; }; GetResults: CrRPC.GetResultsProc ~ { outcome _ VAL[CrRPC.GetCard16[s]]; FOR i10: CARDINAL IN [0..9) DO newTrans[i10] _ CrRPC.GetCard16[s]; ENDLOOP; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~5 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReadPages: PUBLIC ReadPagesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; CrRPC.PutInt32[s, pageRun.firstPage]; CrRPC.PutCard16[s, pageRun.count]; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; CrRPC.PutBulkDataSink[h, s, content]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~18 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; CreateOwner: PUBLIC CreateOwnerType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i11: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i11]]; ENDLOOP; FOR i12: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i12]]; ENDLOOP; CrRPC.PutRope[s, owner]; MProc13[h, s, properties]; CrRPC.PutBool[s, enforceTotalQuota]; }; GetResults: CrRPC.GetResultsProc ~ { spaceLeftOnVolumeGroup _ CrRPC.GetInt32[s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~31 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; WritePages: PUBLIC WritePagesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; CrRPC.PutInt32[s, pageRun.firstPage]; CrRPC.PutCard16[s, pageRun.count]; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; CrRPC.PutBulkDataSource[h, s, content]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~19 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetGroup: PUBLIC GetGroupType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i14: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i14]]; ENDLOOP; FOR i15: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i15]]; ENDLOOP; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; }; GetResults: CrRPC.GetResultsProc ~ { volumes _ UProc16[h, s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~37 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DestroyOwner: PUBLIC DestroyOwnerType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i17: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i17]]; ENDLOOP; FOR i18: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i18]]; ENDLOOP; CrRPC.PutRope[s, owner]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~31 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetSize: PUBLIC GetSizeType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; }; GetResults: CrRPC.GetResultsProc ~ { size _ CrRPC.GetInt32[s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~26 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReorganizeOwnerDB: PUBLIC ReorganizeOwnerDBType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i19: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i19]]; ENDLOOP; FOR i20: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i20]]; ENDLOOP; CrRPC.PutInt32[s, nEntries]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~34 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetRecoveryOption: PUBLIC GetRecoveryOptionType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; }; GetResults: CrRPC.GetResultsProc ~ { recoveryOption _ VAL[CrRPC.GetCard16[s]]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~15 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; ReadOwnerProperties: PUBLIC ReadOwnerPropertiesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i21: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i21]]; ENDLOOP; FOR i22: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i22]]; ENDLOOP; CrRPC.PutRope[s, owner]; FOR i23: CARDINAL IN [0..5) DO CrRPC.PutBool[s, desiredProperties[i23]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { properties _ UProc24[h, s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~29 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; NextOwner: PUBLIC NextOwnerType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i25: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i25]]; ENDLOOP; FOR i26: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeGroupID.vgid[i26]]; ENDLOOP; CrRPC.PutRope[s, previousOwner]; FOR i27: CARDINAL IN [0..5) DO CrRPC.PutBool[s, desiredProperties[i27]]; ENDLOOP; }; GetResults: CrRPC.GetResultsProc ~ { owner _ CrRPC.GetRope[s]; properties _ UProc24[h, s]; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~32 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetEnclosingGroup: PUBLIC GetEnclosingGroupType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; FOR i28: CARDINAL IN [0..9) DO CrRPC.PutCard16[s, transID[i28]]; ENDLOOP; FOR i29: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, volumeID.vgid[i29]]; ENDLOOP; CrRPC.PutCard16[s, ORD[lock.mode]]; CrRPC.PutCard16[s, ORD[lock.ifConflict]]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i30: CARDINAL IN [0..5) DO volumeGroupID.vgid[i30] _ CrRPC.GetCard16[s]; ENDLOOP; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~38 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; GetTransID: PUBLIC GetTransIDType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; }; GetResults: CrRPC.GetResultsProc ~ { FOR i31: CARDINAL IN [0..9) DO transID[i31] _ CrRPC.GetCard16[s]; ENDLOOP; replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; UnlockPages: PUBLIC UnlockPagesType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutCard32[s, session.token]; MProc1[h, s, session.verifier]; CrRPC.PutCard32[s, openFileID]; CrRPC.PutInt32[s, pageRun.firstPage]; CrRPC.PutCard16[s, pageRun.count]; }; GetResults: CrRPC.GetResultsProc ~ { replyVerifier _ UProc2[h, s]; }; CrRPC.Call[h~h, remotePgm~2202, remotePgmVersion~2, remoteProc~21 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; MProc3: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.Properties] ~ { CrRPC.PutCard16[s, val.length]; FOR i55: CARDINAL IN [0..val.length) DO MProc56[h, s, val.body[i55]]; ENDLOOP; }; UProc24: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.OwnerProperties] ~ { { length58: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertiesObject[length58]]; FOR i57: CARDINAL IN [0..length58) DO res.body[i57] _ UProc59[h, s]; ENDLOOP; }; }; UProc16: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.VolumeIDs] ~ { { length61: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AlpineEnvironmentP2201V1.VolumeIDsObject[length61]]; FOR i60: CARDINAL IN [0..length61) DO FOR i62: CARDINAL IN [0..5) DO res.body[i60].vgid[i62] _ CrRPC.GetCard16[s]; ENDLOOP; ENDLOOP; }; }; UProc59: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.OwnerPropertyValuePair] ~ { { tag63: AlpineEnvironmentP2201V1.OwnerProperty ~ VAL[CrRPC.GetCard16[s]]; SELECT tag63 FROM createAccessList => { temp64: AlpineEnvironmentP2201V1.AccessList; temp64 _ UProc65[h, s]; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.createAccessList _ [createAccessList[temp64]]] }; modifyAccessList => { temp64: AlpineEnvironmentP2201V1.AccessList; temp64 _ UProc65[h, s]; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.modifyAccessList _ [modifyAccessList[temp64]]] }; quota => { temp64: INT32; temp64 _ CrRPC.GetInt32[s]; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.quota _ [quota[temp64]]] }; spaceInUse => { temp64: INT32; temp64 _ CrRPC.GetInt32[s]; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.spaceInUse _ [spaceInUse[temp64]]] }; rootFile => { temp64: AlpineEnvironmentP2201V1.UniversalFile; FOR i66: CARDINAL IN [0..5) DO temp64.volumeID.vgid[i66] _ CrRPC.GetCard16[s]; ENDLOOP; FOR i67: CARDINAL IN [0..2) DO temp64.fileID.id[i67] _ CrRPC.GetCard16[s]; ENDLOOP; FOR i68: CARDINAL IN [0..2) DO temp64.fileID.da[i68] _ CrRPC.GetCard16[s]; ENDLOOP; res _ NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.rootFile _ [rootFile[temp64]]] }; ENDCASE => ERROR; }; }; UProc5: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.Properties] ~ { { length70: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertiesObject[length70]]; FOR i69: CARDINAL IN [0..length70) DO res.body[i69] _ UProc71[h, s]; ENDLOOP; }; }; MProc13: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.OwnerProperties] ~ { CrRPC.PutCard16[s, val.length]; FOR i72: CARDINAL IN [0..val.length) DO MProc73[h, s, val.body[i72]]; ENDLOOP; }; UProc2: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AuthenticationP14V2.SeqWords] ~ { { length75: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AuthenticationP14V2.SeqWordsObject[length75]]; FOR i74: CARDINAL IN [0..length75) DO res.body[i74] _ CrRPC.GetCard16[s]; ENDLOOP; }; }; MProc56: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.PropertyValuePair] ~ { CrRPC.PutCard16[s, ORD[val.type]]; WITH val SELECT FROM it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.byteLength => { CrRPC.PutInt32[s, it^.byteLength]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.createTime => { CrRPC.PutCard32[s, it^.createTime]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.highWaterMark => { CrRPC.PutInt32[s, it^.highWaterMark]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.modifyAccess => { MProc77[h, s, it^.modifyAccess]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.owner => { CrRPC.PutRope[s, it^.owner]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.readAccess => { MProc77[h, s, it^.readAccess]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.stringName => { CrRPC.PutRope[s, it^.stringName]; }; it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.version => { CrRPC.PutInt32[s, it^.version]; }; ENDCASE; }; MProc1: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ { CrRPC.PutCard16[s, val.length]; FOR i78: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i78]]; ENDLOOP; }; UProc65: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.AccessList] ~ { { length80: CARDINAL ~ CrRPC.GetCard16[s]; res _ NEW[AlpineEnvironmentP2201V1.AccessListObject[length80]]; FOR i79: CARDINAL IN [0..length80) DO res.body[i79] _ CrRPC.GetRope[s]; ENDLOOP; }; }; MProc73: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.OwnerPropertyValuePair] ~ { CrRPC.PutCard16[s, ORD[val.type]]; WITH val SELECT FROM it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.createAccessList => { MProc77[h, s, it^.createAccessList]; }; it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.modifyAccessList => { MProc77[h, s, it^.modifyAccessList]; }; it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.quota => { CrRPC.PutInt32[s, it^.quota]; }; it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.spaceInUse => { CrRPC.PutInt32[s, it^.spaceInUse]; }; it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.rootFile => { FOR i82: CARDINAL IN [0..5) DO CrRPC.PutCard16[s, it^.rootFile.volumeID.vgid[i82]]; ENDLOOP; FOR i83: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, it^.rootFile.fileID.id[i83]]; ENDLOOP; FOR i84: CARDINAL IN [0..2) DO CrRPC.PutCard16[s, it^.rootFile.fileID.da[i84]]; ENDLOOP; }; ENDCASE; }; UProc71: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.PropertyValuePair] ~ { { tag85: AlpineEnvironmentP2201V1.Property ~ VAL[CrRPC.GetCard16[s]]; SELECT tag85 FROM byteLength => { temp86: INT32; temp86 _ CrRPC.GetInt32[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.byteLength _ [byteLength[temp86]]] }; createTime => { temp86: CARD32; temp86 _ CrRPC.GetCard32[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.createTime _ [createTime[temp86]]] }; highWaterMark => { temp86: INT32; temp86 _ CrRPC.GetInt32[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.highWaterMark _ [highWaterMark[temp86]]] }; modifyAccess => { temp86: AlpineEnvironmentP2201V1.AccessList; temp86 _ UProc65[h, s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.modifyAccess _ [modifyAccess[temp86]]] }; owner => { temp86: ROPE; temp86 _ CrRPC.GetRope[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.owner _ [owner[temp86]]] }; readAccess => { temp86: AlpineEnvironmentP2201V1.AccessList; temp86 _ UProc65[h, s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.readAccess _ [readAccess[temp86]]] }; stringName => { temp86: ROPE; temp86 _ CrRPC.GetRope[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.stringName _ [stringName[temp86]]] }; version => { temp86: INT32; temp86 _ CrRPC.GetInt32[s]; res _ NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.version _ [version[temp86]]] }; ENDCASE => ERROR; }; }; MProc77: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.AccessList] ~ { CrRPC.PutCard16[s, val.length]; FOR i87: CARDINAL IN [0..val.length) DO CrRPC.PutRope[s, val.body[i87]]; ENDLOOP; }; }... JAlpineP2202V2ClientAImpl.Mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Generated by CHauser.pa at November 13, 1987 1:17:35 pm PST using Sirocco [2.0] of January 31, 1987 1:52:42 am PST Carl Hauser, November 16, 1987 3:54:13 pm PST Errors GetErrorProc Remote Procedures -- Unmarshal / Marshal Procs -- Κ%˜šœ™Jšœ>™>Jšœ;™;Jšœ6™6Icode™-J˜—šΟk ˜ J˜J˜ J˜J˜J˜ J˜—J˜šΟnœœ˜'Jšœ˜ Jšœ˜Jšœ˜—J˜šœ™J˜J˜Jšžœœœ˜7J˜Jšž œœœ˜-J˜Jšžœœœ˜3J˜Jšžœœœ˜#J˜Jšž œœœ˜)J˜Jšžœœœ˜3J˜Jšžœœœ˜;J˜Jšžœœœ˜3J˜—šœ ™ J˜šžœ˜ šœ˜Jšœœ˜ ˜J˜5Jšœœ˜(Jšœ˜!J˜—˜J˜/Jšœœ˜Jšœ˜J˜—˜J˜+Jšœœ˜Jšœ˜J˜—˜J˜*Jšœœ˜Jšœ˜J˜—˜J˜Jšœ œ˜"Jšœ˜J˜—˜J˜%Jšœ œ˜"Jšœ˜"J˜—Jšœœ˜šœ˜ Jšœ8˜=J˜——J˜—J˜—šœ™J˜šžœœ˜7šžœ˜J˜"J˜J˜J˜—šž œ˜$Jšœœ˜+J˜J˜J˜—J˜J˜—J˜šžœœ˜/šžœ˜J˜"J˜J˜J˜Jšœœ ˜#Jšœœ˜)J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šžœœ˜šžœ˜J˜"J˜J˜—šž œ˜$Jš˜J˜J˜—J˜~J˜—J˜šžœœ˜-šžœ˜J˜"J˜J˜šœœœ˜J˜(Jšœ˜—Jšœœ ˜#Jšœœ˜)J˜—šž œ˜$J˜J˜J˜J˜—J˜J˜—J˜šžœœ˜1šžœ˜J˜"J˜J˜J˜—šž œ˜$šœœœ˜J˜5Jšœ˜—šœœœ˜J˜1Jšœ˜—šœœœ˜J˜1Jšœ˜—J˜J˜J˜—J˜J˜—J˜šžœœ˜7šžœ˜J˜"J˜J˜Jšœœ˜*J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šžœœ˜3šžœ˜J˜"J˜šœœœ˜J˜ Jšœ˜—Jšœœ˜*J˜J˜—šž œ˜$Jšœ œ˜"šœœœ˜J˜#Jšœ˜—J˜J˜J˜—J˜~J˜—J˜šž œœ˜#šžœ˜J˜"J˜J˜J˜%J˜"Jšœœ ˜#Jšœœ˜)J˜%J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šž œœ˜'šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—J˜J˜J˜$J˜—šž œ˜$J˜+J˜J˜J˜—J˜J˜—J˜šž œœ˜%šžœ˜J˜"J˜J˜J˜%J˜"Jšœœ ˜#Jšœœ˜)J˜'J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šžœœ˜!šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—Jšœœ ˜#Jšœœ˜)J˜—šž œ˜$J˜J˜J˜J˜—J˜J˜—J˜šž œœ˜)šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—J˜J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šžœœ˜šžœ˜J˜"J˜J˜Jšœœ ˜#Jšœœ˜)J˜—šž œ˜$J˜J˜J˜J˜—J˜J˜—J˜šžœœ˜3šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—J˜J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜šžœœ˜3šžœ˜J˜"J˜J˜J˜—šž œ˜$Jšœœ˜)J˜J˜J˜—J˜J˜—J˜šžœœ˜7šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—J˜šœœœ˜J˜)Jšœ˜—J˜—šž œ˜$J˜J˜J˜J˜—J˜J˜—J˜šž œœ˜#šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜,Jšœ˜—J˜ šœœœ˜J˜)Jšœ˜—J˜—šž œ˜$J˜J˜J˜J˜J˜—J˜J˜—J˜šžœœ˜3šžœ˜J˜"J˜šœœœ˜J˜!Jšœ˜—šœœœ˜J˜'Jšœ˜—Jšœœ ˜#Jšœœ˜)J˜—šž œ˜$šœœœ˜J˜-Jšœ˜—J˜J˜J˜—J˜J˜—J˜šž œœ˜%šžœ˜J˜"J˜J˜J˜—šž œ˜$šœœœ˜J˜"Jšœ˜—J˜J˜J˜—J˜J˜—J˜šž œœ˜'šžœ˜J˜"J˜J˜J˜%J˜"J˜—šž œ˜$J˜J˜J˜—J˜J˜—J˜—šœ™J˜J˜šžœœœ/˜]J˜šœœœ˜'J˜Jšœ˜—J˜—J˜šžœœœœ4˜l˜Jšœ œ˜(Jšœœ;˜Ešœœœ˜%J˜Jšœ˜—J˜—J˜—J˜šžœœœœ.˜f˜Jšœ œ˜(Jšœœ5˜?šœœœ˜%šœœœ˜J˜-Jšœ˜—Jšœ˜—J˜—J˜—J˜šžœœœœ;˜s˜Jšœ0œ˜Hšœ˜˜J˜,J˜Jšœœh˜q—˜J˜,J˜Jšœœh˜q—˜ Jšœœ˜J˜JšœœR˜[—˜Jšœœ˜J˜Jšœœ\˜e—˜ J˜/šœœœ˜J˜/Jšœ˜—šœœœ˜J˜+Jšœ˜—šœœœ˜J˜+Jšœ˜—JšœœX˜a—Jšœœ˜—J˜—J˜—J˜šžœœœœ/˜f˜Jšœ œ˜(Jšœœ6˜@šœœœ˜%J˜Jšœ˜—J˜—J˜—J˜šžœœœ4˜cJ˜šœœœ˜'J˜Jšœ˜—J˜—J˜šžœœœœ(˜_˜Jšœ œ˜(Jšœœ/˜9šœœœ˜%J˜#Jšœ˜—J˜—J˜—J˜šžœœœ6˜eJšœœ ˜"šœœ˜šœœA˜HJ˜"J˜—šœœA˜HJ˜#J˜—šœœD˜KJ˜%J˜—šœœC˜JJ˜ J˜—šœœ<˜CJ˜J˜—šœœA˜HJ˜J˜—šœœA˜HJ˜!J˜—šœœ>˜EJ˜J˜—Jšœ˜—J˜—J˜šžœœœ(˜VJ˜šœœœ˜'J˜"Jšœ˜—J˜—J˜šžœœœœ/˜g˜Jšœ œ˜(Jšœœ6˜@šœœœ˜%J˜!Jšœ˜—J˜—J˜—J˜šžœœœ;˜jJšœœ ˜"šœœ˜šœœL˜SJ˜$J˜—šœœL˜SJ˜$J˜—šœœA˜HJ˜J˜—šœœF˜MJ˜"J˜—šœœD˜Kšœœœ˜J˜4Jšœ˜—šœœœ˜J˜0Jšœ˜—šœœœ˜J˜0Jšœ˜—J˜—Jšœ˜—J˜—J˜šžœœœœ6˜n˜Jšœ+œ˜Cšœ˜˜Jšœœ˜J˜JšœœW˜`—˜Jšœœ˜J˜JšœœW˜`—˜Jšœœ˜J˜Jšœœ]˜f—˜J˜,J˜Jšœœ[˜d—˜ Jšœœ˜ J˜JšœœM˜V—˜J˜,J˜JšœœW˜`—˜Jšœœ˜ J˜JšœœW˜`—˜ Jšœœ˜J˜JšœœQ˜Z—Jšœœ˜—J˜—J˜—J˜šžœœœ/˜^J˜šœœœ˜'J˜ Jšœ˜—J˜—J˜—J˜J˜—…—Lb_Ρ