AlpineP2202V2ClientAImpl.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
DIRECTORY
CrRPC,
CHNameP2V0,
AuthenticationP14V2,
AlpineEnvironmentP2201V1,
BulkDataP0V1,
AlpineP2202V2;
AlpineP2202V2ClientAImpl: CEDAR PROGRAM
IMPORTS CrRPC
EXPORTS AlpineP2202V2 ~ {
OPEN AlpineP2202V2;
Errors
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;
GetErrorProc
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"];
};
};
Remote Procedures --
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];
};
Unmarshal / Marshal Procs --
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;
};
}...