AlpineP2202V2ServerImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by CHauser.pa at November 13, 1987 1:17:40 pm PST
using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
DIRECTORY
CrRPC,
CHNameP2V0,
AuthenticationP14V2,
AlpineEnvironmentP2201V1,
BulkDataP0V1,
AlpineP2202V2;
AlpineP2202V2ServerImpl: CEDAR PROGRAM
IMPORTS CrRPC, AlpineP2202V2 ~ {
OPEN AlpineP2202V2;
GetReferencePatternCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
referencePattern: AlpineEnvironmentP2201V1.ReferencePattern;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[referencePattern, replyVerifier] ← GetReferencePattern[h, session, openFileID];
beginReturn[h];
{
CrRPC.PutCard16[s, ORD[referencePattern]];
};
{
MProc89[h, s, replyVerifier];
};
};
WritePropertiesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
properties: AlpineEnvironmentP2201V1.Properties;
lock: AlpineEnvironmentP2201V1.LockOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
properties ← UProc90[h, s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[replyVerifier] ← WriteProperties[h, session, openFileID, properties, lock];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
LogoffCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
[] ← Logoff[h, session];
beginReturn[h];
};
ReadPropertiesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
desiredProperties: AlpineEnvironmentP2201V1.PropertySet;
lock: AlpineEnvironmentP2201V1.LockOption;
properties: AlpineEnvironmentP2201V1.Properties;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
FOR i91: CARDINAL IN [0..8) DO
desiredProperties[i91] ← CrRPC.GetBool[s];
ENDLOOP;
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[properties, replyVerifier] ← ReadProperties[h, session, openFileID, desiredProperties, lock];
beginReturn[h];
{
MProc92[h, s, properties];
};
{
MProc89[h, s, replyVerifier];
};
};
GetUniversalFileCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
universalFile: AlpineEnvironmentP2201V1.UniversalFile;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[universalFile, replyVerifier] ← GetUniversalFile[h, session, openFileID];
beginReturn[h];
{
FOR i93: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, universalFile.volumeID.vgid[i93]];
ENDLOOP;
FOR i94: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, universalFile.fileID.id[i94]];
ENDLOOP;
FOR i95: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, universalFile.fileID.da[i95]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
SetReferencePatternCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
referencePattern: AlpineEnvironmentP2201V1.ReferencePattern;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
referencePattern ← VAL[CrRPC.GetCard16[s]];
};
[replyVerifier] ← SetReferencePattern[h, session, openFileID, referencePattern];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
FinishTransactionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
requestedOutcome: AlpineEnvironmentP2201V1.CommitOrAbort;
continue: BOOLEAN;
outcome: AlpineEnvironmentP2201V1.Outcome;
newTrans: AlpineEnvironmentP2201V1.TransID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i96: CARDINAL IN [0..9) DO
transID[i96] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
requestedOutcome ← VAL[CrRPC.GetCard16[s]];
};
{
continue ← CrRPC.GetBool[s];
};
[outcome, newTrans, replyVerifier] ← FinishTransaction[h, session, transID, requestedOutcome, continue];
beginReturn[h];
{
CrRPC.PutCard16[s, ORD[outcome]];
};
{
FOR i97: CARDINAL IN [0..9) DO
CrRPC.PutCard16[s, newTrans[i97]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
ReadPagesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
pageRun: AlpineEnvironmentP2201V1.PageRun;
lock: AlpineEnvironmentP2201V1.LockOption;
content: CrRPC.BulkDataSink;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
pageRun.firstPage ← CrRPC.GetInt32[s];
pageRun.count ← CrRPC.GetCard16[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
TRUSTED {
content ← CrRPC.GetBulkDataSink[h, s];
};
[replyVerifier] ← ReadPages[h, session, openFileID, pageRun, lock, content];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
CreateOwnerCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
owner: ROPE;
properties: AlpineEnvironmentP2201V1.OwnerProperties;
enforceTotalQuota: BOOLEAN;
spaceLeftOnVolumeGroup: INT32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i98: CARDINAL IN [0..9) DO
transID[i98] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i99: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i99] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
owner ← CrRPC.GetRope[s];
};
{
properties ← UProc100[h, s];
};
{
enforceTotalQuota ← CrRPC.GetBool[s];
};
[spaceLeftOnVolumeGroup, replyVerifier] ← CreateOwner[h, session, transID, volumeGroupID, owner, properties, enforceTotalQuota];
beginReturn[h];
{
CrRPC.PutInt32[s, spaceLeftOnVolumeGroup];
};
{
MProc89[h, s, replyVerifier];
};
};
WritePagesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
pageRun: AlpineEnvironmentP2201V1.PageRun;
lock: AlpineEnvironmentP2201V1.LockOption;
content: CrRPC.BulkDataSource;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
pageRun.firstPage ← CrRPC.GetInt32[s];
pageRun.count ← CrRPC.GetCard16[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
TRUSTED {
content ← CrRPC.GetBulkDataSource[h, s];
};
[replyVerifier] ← WritePages[h, session, openFileID, pageRun, lock, content];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
GetGroupCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
lock: AlpineEnvironmentP2201V1.LockOption;
volumes: AlpineEnvironmentP2201V1.VolumeIDs;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i101: CARDINAL IN [0..9) DO
transID[i101] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i102: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i102] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[volumes, replyVerifier] ← GetGroup[h, session, transID, volumeGroupID, lock];
beginReturn[h];
{
MProc103[h, s, volumes];
};
{
MProc89[h, s, replyVerifier];
};
};
DestroyOwnerCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
owner: ROPE;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i104: CARDINAL IN [0..9) DO
transID[i104] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i105: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i105] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
owner ← CrRPC.GetRope[s];
};
[replyVerifier] ← DestroyOwner[h, session, transID, volumeGroupID, owner];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
GetSizeCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
lock: AlpineEnvironmentP2201V1.LockOption;
size: INT32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[size, replyVerifier] ← GetSize[h, session, openFileID, lock];
beginReturn[h];
{
CrRPC.PutInt32[s, size];
};
{
MProc89[h, s, replyVerifier];
};
};
ReorganizeOwnerDBCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
nEntries: INT32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i106: CARDINAL IN [0..9) DO
transID[i106] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i107: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i107] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
nEntries ← CrRPC.GetInt32[s];
};
[replyVerifier] ← ReorganizeOwnerDB[h, session, transID, volumeGroupID, nEntries];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
GetRecoveryOptionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
recoveryOption: AlpineEnvironmentP2201V1.RecoveryOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[recoveryOption, replyVerifier] ← GetRecoveryOption[h, session, openFileID];
beginReturn[h];
{
CrRPC.PutCard16[s, ORD[recoveryOption]];
};
{
MProc89[h, s, replyVerifier];
};
};
ReadOwnerPropertiesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
owner: ROPE;
desiredProperties: AlpineEnvironmentP2201V1.OwnerPropertySet;
properties: AlpineEnvironmentP2201V1.OwnerProperties;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i108: CARDINAL IN [0..9) DO
transID[i108] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i109: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i109] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
owner ← CrRPC.GetRope[s];
};
{
FOR i110: CARDINAL IN [0..5) DO
desiredProperties[i110] ← CrRPC.GetBool[s];
ENDLOOP;
};
[properties, replyVerifier] ← ReadOwnerProperties[h, session, transID, volumeGroupID, owner, desiredProperties];
beginReturn[h];
{
MProc111[h, s, properties];
};
{
MProc89[h, s, replyVerifier];
};
};
NextOwnerCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
previousOwner: ROPE;
desiredProperties: AlpineEnvironmentP2201V1.OwnerPropertySet;
owner: ROPE;
properties: AlpineEnvironmentP2201V1.OwnerProperties;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i112: CARDINAL IN [0..9) DO
transID[i112] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i113: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i113] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
previousOwner ← CrRPC.GetRope[s];
};
{
FOR i114: CARDINAL IN [0..5) DO
desiredProperties[i114] ← CrRPC.GetBool[s];
ENDLOOP;
};
[owner, properties, replyVerifier] ← NextOwner[h, session, transID, volumeGroupID, previousOwner, desiredProperties];
beginReturn[h];
{
CrRPC.PutRope[s, owner];
};
{
MProc111[h, s, properties];
};
{
MProc89[h, s, replyVerifier];
};
};
GetEnclosingGroupCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeID: AlpineEnvironmentP2201V1.VolumeID;
lock: AlpineEnvironmentP2201V1.LockOption;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i115: CARDINAL IN [0..9) DO
transID[i115] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i116: CARDINAL IN [0..5) DO
volumeID.vgid[i116] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[volumeGroupID, replyVerifier] ← GetEnclosingGroup[h, session, transID, volumeID, lock];
beginReturn[h];
{
FOR i117: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, volumeGroupID.vgid[i117]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
GetTransIDCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
transID: AlpineEnvironmentP2201V1.TransID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[transID, replyVerifier] ← GetTransID[h, session, openFileID];
beginReturn[h];
{
FOR i118: CARDINAL IN [0..9) DO
CrRPC.PutCard16[s, transID[i118]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
UnlockPagesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
pageRun: AlpineEnvironmentP2201V1.PageRun;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
pageRun.firstPage ← CrRPC.GetInt32[s];
pageRun.count ← CrRPC.GetCard16[s];
};
[replyVerifier] ← UnlockPages[h, session, openFileID, pageRun];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
UnlockFileCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[replyVerifier] ← UnlockFile[h, session, openFileID];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
SetLockOptionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
lock: AlpineEnvironmentP2201V1.LockOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[replyVerifier] ← SetLockOption[h, session, openFileID, lock];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
AssertAlpineWheelCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
enable: BOOLEAN;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i119: CARDINAL IN [0..9) DO
transID[i119] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
enable ← CrRPC.GetBool[s];
};
[replyVerifier] ← AssertAlpineWheel[h, session, transID, enable];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
CreateTransactionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
createLocalWorker: BOOLEAN;
transID: AlpineEnvironmentP2201V1.TransID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
createLocalWorker ← CrRPC.GetBool[s];
};
[transID, replyVerifier] ← CreateTransaction[h, session, createLocalWorker];
beginReturn[h];
{
FOR i120: CARDINAL IN [0..9) DO
CrRPC.PutCard16[s, transID[i120]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
LogonCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
service: CHNameP2V0.ThreePartName;
credentials: AuthenticationP14V2.Credentials;
gvCredentials: GVCredentials;
verifier: AuthenticationP14V2.SeqWords;
session: Session;
replyVerifier: AuthenticationP14V2.SeqWords;
{
service.organization ← CrRPC.GetRope[s];
service.domain ← CrRPC.GetRope[s];
service.object ← CrRPC.GetRope[s];
};
{
credentials.type ← VAL[CrRPC.GetCard16[s]];
credentials.value ← UProc88[h, s];
};
{
gvCredentials.name ← CrRPC.GetRope[s];
gvCredentials.pwd ← CrRPC.GetRope[s];
};
{
verifier ← UProc88[h, s];
};
[session, replyVerifier] ← Logon[h, service, credentials, gvCredentials, verifier];
beginReturn[h];
{
CrRPC.PutCard32[s, session.token];
MProc89[h, s, session.verifier];
};
{
MProc89[h, s, replyVerifier];
};
};
GetNextGroupCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
previousGroup: AlpineEnvironmentP2201V1.VolumeGroupID;
lock: AlpineEnvironmentP2201V1.LockOption;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i121: CARDINAL IN [0..9) DO
transID[i121] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i122: CARDINAL IN [0..5) DO
previousGroup.vgid[i122] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[volumeGroupID, replyVerifier] ← GetNextGroup[h, session, transID, previousGroup, lock];
beginReturn[h];
{
FOR i123: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, volumeGroupID.vgid[i123]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
DeleteCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[replyVerifier] ← Delete[h, session, openFileID];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
GetLockOptionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
lock: AlpineEnvironmentP2201V1.LockOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[lock, replyVerifier] ← GetLockOption[h, session, openFileID];
beginReturn[h];
{
CrRPC.PutCard16[s, ORD[lock.mode]];
CrRPC.PutCard16[s, ORD[lock.ifConflict]];
};
{
MProc89[h, s, replyVerifier];
};
};
UnlockVersionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[replyVerifier] ← UnlockVersion[h, session, openFileID];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
CreateWorkerCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
coordinator: ROPE;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i124: CARDINAL IN [0..9) DO
transID[i124] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
coordinator ← CrRPC.GetRope[s];
};
[replyVerifier] ← CreateWorker[h, session, transID, coordinator];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
UnlockOwnerDBCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i125: CARDINAL IN [0..9) DO
transID[i125] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i126: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i126] ← CrRPC.GetCard16[s];
ENDLOOP;
};
[replyVerifier] ← UnlockOwnerDB[h, session, transID, volumeGroupID];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
LockPagesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
pageRun: AlpineEnvironmentP2201V1.PageRun;
lock: AlpineEnvironmentP2201V1.LockOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
pageRun.firstPage ← CrRPC.GetInt32[s];
pageRun.count ← CrRPC.GetCard16[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[replyVerifier] ← LockPages[h, session, openFileID, pageRun, lock];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
WriteOwnerPropertiesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
owner: ROPE;
properties: AlpineEnvironmentP2201V1.OwnerProperties;
enforceTotalQuota: BOOLEAN;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i127: CARDINAL IN [0..9) DO
transID[i127] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i128: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i128] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
owner ← CrRPC.GetRope[s];
};
{
properties ← UProc100[h, s];
};
{
enforceTotalQuota ← CrRPC.GetBool[s];
};
[replyVerifier] ← WriteOwnerProperties[h, session, transID, volumeGroupID, owner, properties, enforceTotalQuota];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
CreateCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeID: AlpineEnvironmentP2201V1.VolOrVolGroupID;
owner: ROPE;
initialSize: INT32;
recoveryOption: AlpineEnvironmentP2201V1.RecoveryOption;
referencePattern: AlpineEnvironmentP2201V1.ReferencePattern;
openFileID: CARD32;
universalFile: AlpineEnvironmentP2201V1.UniversalFile;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i129: CARDINAL IN [0..9) DO
transID[i129] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i130: CARDINAL IN [0..5) DO
volumeID[i130] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
owner ← CrRPC.GetRope[s];
};
{
initialSize ← CrRPC.GetInt32[s];
};
{
recoveryOption ← VAL[CrRPC.GetCard16[s]];
};
{
referencePattern ← VAL[CrRPC.GetCard16[s]];
};
[openFileID, universalFile, replyVerifier] ← Create[h, session, transID, volumeID, owner, initialSize, recoveryOption, referencePattern];
beginReturn[h];
{
CrRPC.PutCard32[s, openFileID];
};
{
FOR i131: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, universalFile.volumeID.vgid[i131]];
ENDLOOP;
FOR i132: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, universalFile.fileID.id[i132]];
ENDLOOP;
FOR i133: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, universalFile.fileID.da[i133]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
SetSizeCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
size: INT32;
lock: AlpineEnvironmentP2201V1.LockOption;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
size ← CrRPC.GetInt32[s];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
[replyVerifier] ← SetSize[h, session, openFileID, size, lock];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
ReadOwnerDBPropertiesCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
volumeGroupID: AlpineEnvironmentP2201V1.VolumeGroupID;
nOwners: INT32;
nEntriesUsed: INT32;
nEntries: INT32;
totalQuota: INT32;
totalSpaceInUse: INT32;
volumeGroupSize: INT32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i134: CARDINAL IN [0..9) DO
transID[i134] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i135: CARDINAL IN [0..5) DO
volumeGroupID.vgid[i135] ← CrRPC.GetCard16[s];
ENDLOOP;
};
[nOwners, nEntriesUsed, nEntries, totalQuota, totalSpaceInUse, volumeGroupSize, replyVerifier] ← ReadOwnerDBProperties[h, session, transID, volumeGroupID];
beginReturn[h];
{
CrRPC.PutInt32[s, nOwners];
};
{
CrRPC.PutInt32[s, nEntriesUsed];
};
{
CrRPC.PutInt32[s, nEntries];
};
{
CrRPC.PutInt32[s, totalQuota];
};
{
CrRPC.PutInt32[s, totalSpaceInUse];
};
{
CrRPC.PutInt32[s, volumeGroupSize];
};
{
MProc89[h, s, replyVerifier];
};
};
CloseCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[replyVerifier] ← Close[h, session, openFileID];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
OpenCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
transID: AlpineEnvironmentP2201V1.TransID;
universalFile: AlpineEnvironmentP2201V1.UniversalFile;
access: AlpineEnvironmentP2201V1.AccessRights;
lock: AlpineEnvironmentP2201V1.LockOption;
recoveryOption: AlpineEnvironmentP2201V1.RecoveryOption;
referencePattern: AlpineEnvironmentP2201V1.ReferencePattern;
openFileID: CARD32;
fileID: AlpineEnvironmentP2201V1.FileID;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
FOR i136: CARDINAL IN [0..9) DO
transID[i136] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i137: CARDINAL IN [0..5) DO
universalFile.volumeID.vgid[i137] ← CrRPC.GetCard16[s];
ENDLOOP;
FOR i138: CARDINAL IN [0..2) DO
universalFile.fileID.id[i138] ← CrRPC.GetCard16[s];
ENDLOOP;
FOR i139: CARDINAL IN [0..2) DO
universalFile.fileID.da[i139] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
access ← VAL[CrRPC.GetCard16[s]];
};
{
lock.mode ← VAL[CrRPC.GetCard16[s]];
lock.ifConflict ← VAL[CrRPC.GetCard16[s]];
};
{
recoveryOption ← VAL[CrRPC.GetCard16[s]];
};
{
referencePattern ← VAL[CrRPC.GetCard16[s]];
};
[openFileID, fileID, replyVerifier] ← Open[h, session, transID, universalFile, access, lock, recoveryOption, referencePattern];
beginReturn[h];
{
CrRPC.PutCard32[s, openFileID];
};
{
FOR i140: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, fileID.id[i140]];
ENDLOOP;
FOR i141: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, fileID.da[i141]];
ENDLOOP;
};
{
MProc89[h, s, replyVerifier];
};
};
IncrementVersionCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
increment: INT32;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
{
increment ← CrRPC.GetInt32[s];
};
[replyVerifier] ← IncrementVersion[h, session, openFileID, increment];
beginReturn[h];
{
MProc89[h, s, replyVerifier];
};
};
GetAccessRightsCaller: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
openFileID: CARD32;
access: AlpineEnvironmentP2201V1.AccessRights;
replyVerifier: AuthenticationP14V2.SeqWords;
{
session.token ← CrRPC.GetCard32[s];
session.verifier ← UProc88[h, s];
};
{
openFileID ← CrRPC.GetCard32[s];
};
[access, replyVerifier] ← GetAccessRights[h, session, openFileID];
beginReturn[h];
{
CrRPC.PutCard16[s, ORD[access]];
};
{
MProc89[h, s, replyVerifier];
};
};
Server: CrRPC.ServerProc ~ {
[h: Handle, s: STREAM, pgm: CARD32, pgmVersion: CARD16, proc: CARD16, beginReturn: BeginReturnProc, beginError: BeginErrorProc, beginReject: BeginRejectProc]
ENABLE {
AlpineP2202V2.StaticallyInvalid => { -- (4 )
beginError[h, 4 ];
GOTO Finished;
};
AlpineP2202V2.AccessFailed => { -- (0 )
beginError[h, 0 ];
CrRPC.PutCard16[s, ORD[missingAccess]];
GOTO Finished;
};
AlpineP2202V2.OperationFailed => { -- (2 )
beginError[h, 2 ];
CrRPC.PutCard16[s, ORD[why]];
GOTO Finished;
};
AlpineP2202V2.Unknown => { -- (5 )
beginError[h, 5 ];
CrRPC.PutCard16[s, ORD[what]];
GOTO Finished;
};
AlpineP2202V2.LockFailed => { -- (1 )
beginError[h, 1 ];
CrRPC.PutCard16[s, ORD[why]];
GOTO Finished;
};
AlpineP2202V2.ConnectionError => { -- (7 )
beginError[h, 7 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
AlpineP2202V2.AuthenticationError => { -- (6 )
beginError[h, 6 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
AlpineP2202V2.PossiblyDamaged => { -- (3 )
beginError[h, 3 ];
GOTO Finished;
};
};
IF (pgmVersion # 2) THEN {
beginReject[h, CrRPC.noSuchVersion];
CrRPC.PutCard16[s, 2]; --low
CrRPC.PutCard16[s, 2]; --high
RETURN
};
SELECT proc FROM
16 => GetReferencePatternCaller[h, s, beginReturn];
23 => WritePropertiesCaller[h, s, beginReturn];
1 => LogoffCaller[h, s, beginReturn];
22 => ReadPropertiesCaller[h, s, beginReturn];
10 => GetUniversalFileCaller[h, s, beginReturn];
17 => SetReferencePatternCaller[h, s, beginReturn];
5 => FinishTransactionCaller[h, s, beginReturn];
18 => ReadPagesCaller[h, s, beginReturn];
31 => CreateOwnerCaller[h, s, beginReturn];
19 => WritePagesCaller[h, s, beginReturn];
37 => GetGroupCaller[h, s, beginReturn];
31 => DestroyOwnerCaller[h, s, beginReturn];
26 => GetSizeCaller[h, s, beginReturn];
34 => ReorganizeOwnerDBCaller[h, s, beginReturn];
15 => GetRecoveryOptionCaller[h, s, beginReturn];
29 => ReadOwnerPropertiesCaller[h, s, beginReturn];
32 => NextOwnerCaller[h, s, beginReturn];
38 => GetEnclosingGroupCaller[h, s, beginReturn];
11 => GetTransIDCaller[h, s, beginReturn];
21 => UnlockPagesCaller[h, s, beginReturn];
28 => UnlockFileCaller[h, s, beginReturn];
14 => SetLockOptionCaller[h, s, beginReturn];
4 => AssertAlpineWheelCaller[h, s, beginReturn];
2 => CreateTransactionCaller[h, s, beginReturn];
0 => LogonCaller[h, s, beginReturn];
36 => GetNextGroupCaller[h, s, beginReturn];
9 => DeleteCaller[h, s, beginReturn];
13 => GetLockOptionCaller[h, s, beginReturn];
24 => UnlockVersionCaller[h, s, beginReturn];
3 => CreateWorkerCaller[h, s, beginReturn];
35 => UnlockOwnerDBCaller[h, s, beginReturn];
20 => LockPagesCaller[h, s, beginReturn];
30 => WriteOwnerPropertiesCaller[h, s, beginReturn];
7 => CreateCaller[h, s, beginReturn];
27 => SetSizeCaller[h, s, beginReturn];
33 => ReadOwnerDBPropertiesCaller[h, s, beginReturn];
8 => CloseCaller[h, s, beginReturn];
6 => OpenCaller[h, s, beginReturn];
25 => IncrementVersionCaller[h, s, beginReturn];
12 => GetAccessRightsCaller[h, s, beginReturn];
ENDCASE => {
beginReject[h, CrRPC.noSuchProcedure];
};
EXITS
Finished => { NULL };
};
Unmarshal / Marshal Procs --
MProc92: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.Properties] ~ {
CrRPC.PutCard16[s, val.length];
FOR i142: CARDINAL IN [0..val.length) DO
MProc143[h, s, val.body[i142]];
ENDLOOP;
};
UProc100: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.OwnerProperties] ~ {
{
length145: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertiesObject[length145]];
FOR i144: CARDINAL IN [0..length145) DO
res.body[i144] ← UProc146[h, s];
ENDLOOP;
};
};
UProc146: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.OwnerPropertyValuePair] ~ {
{
tag147: AlpineEnvironmentP2201V1.OwnerProperty ~ VAL[CrRPC.GetCard16[s]];
SELECT tag147 FROM
createAccessList => {
temp148: AlpineEnvironmentP2201V1.AccessList;
temp148 ← UProc149[h, s];
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.createAccessList ← [createAccessList[temp148]]] };
modifyAccessList => {
temp148: AlpineEnvironmentP2201V1.AccessList;
temp148 ← UProc149[h, s];
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.modifyAccessList ← [modifyAccessList[temp148]]] };
quota => {
temp148: INT32;
temp148 ← CrRPC.GetInt32[s];
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.quota ← [quota[temp148]]] };
spaceInUse => {
temp148: INT32;
temp148 ← CrRPC.GetInt32[s];
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.spaceInUse ← [spaceInUse[temp148]]] };
rootFile => {
temp148: AlpineEnvironmentP2201V1.UniversalFile;
FOR i150: CARDINAL IN [0..5) DO
temp148.volumeID.vgid[i150] ← CrRPC.GetCard16[s];
ENDLOOP;
FOR i151: CARDINAL IN [0..2) DO
temp148.fileID.id[i151] ← CrRPC.GetCard16[s];
ENDLOOP;
FOR i152: CARDINAL IN [0..2) DO
temp148.fileID.da[i152] ← CrRPC.GetCard16[s];
ENDLOOP;
res ← NEW[AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.rootFile ← [rootFile[temp148]]] };
ENDCASE => ERROR;
};
};
UProc90: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.Properties] ~ {
{
length154: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertiesObject[length154]];
FOR i153: CARDINAL IN [0..length154) DO
res.body[i153] ← UProc155[h, s];
ENDLOOP;
};
};
MProc111: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.OwnerProperties] ~ {
CrRPC.PutCard16[s, val.length];
FOR i156: CARDINAL IN [0..val.length) DO
MProc157[h, s, val.body[i156]];
ENDLOOP;
};
UProc88: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AuthenticationP14V2.SeqWords] ~ {
{
length159: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AuthenticationP14V2.SeqWordsObject[length159]];
FOR i158: CARDINAL IN [0..length159) DO
res.body[i158] ← CrRPC.GetCard16[s];
ENDLOOP;
};
};
MProc143: 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 => {
MProc161[h, s, it^.modifyAccess];
};
it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.owner => {
CrRPC.PutRope[s, it^.owner];
};
it: REF AlpineEnvironmentP2201V1.PropertyValuePairObject.readAccess => {
MProc161[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;
};
MProc103: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.VolumeIDs] ~ {
CrRPC.PutCard16[s, val.length];
FOR i162: CARDINAL IN [0..val.length) DO
FOR i163: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, val.body[i162].vgid[i163]];
ENDLOOP;
ENDLOOP;
};
MProc89: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ {
CrRPC.PutCard16[s, val.length];
FOR i164: CARDINAL IN [0..val.length) DO
CrRPC.PutCard16[s, val.body[i164]];
ENDLOOP;
};
UProc149: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.AccessList] ~ {
{
length166: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AlpineEnvironmentP2201V1.AccessListObject[length166]];
FOR i165: CARDINAL IN [0..length166) DO
res.body[i165] ← CrRPC.GetRope[s];
ENDLOOP;
};
};
MProc157: 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 => {
MProc161[h, s, it^.createAccessList];
};
it: REF AlpineEnvironmentP2201V1.OwnerPropertyValuePairObject.modifyAccessList => {
MProc161[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 i168: CARDINAL IN [0..5) DO
CrRPC.PutCard16[s, it^.rootFile.volumeID.vgid[i168]];
ENDLOOP;
FOR i169: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, it^.rootFile.fileID.id[i169]];
ENDLOOP;
FOR i170: CARDINAL IN [0..2) DO
CrRPC.PutCard16[s, it^.rootFile.fileID.da[i170]];
ENDLOOP;
};
ENDCASE;
};
UProc155: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AlpineEnvironmentP2201V1.PropertyValuePair] ~ {
{
tag171: AlpineEnvironmentP2201V1.Property ~ VAL[CrRPC.GetCard16[s]];
SELECT tag171 FROM
byteLength => {
temp172: INT32;
temp172 ← CrRPC.GetInt32[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.byteLength ← [byteLength[temp172]]] };
createTime => {
temp172: CARD32;
temp172 ← CrRPC.GetCard32[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.createTime ← [createTime[temp172]]] };
highWaterMark => {
temp172: INT32;
temp172 ← CrRPC.GetInt32[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.highWaterMark ← [highWaterMark[temp172]]] };
modifyAccess => {
temp172: AlpineEnvironmentP2201V1.AccessList;
temp172 ← UProc149[h, s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.modifyAccess ← [modifyAccess[temp172]]] };
owner => {
temp172: ROPE;
temp172 ← CrRPC.GetRope[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.owner ← [owner[temp172]]] };
readAccess => {
temp172: AlpineEnvironmentP2201V1.AccessList;
temp172 ← UProc149[h, s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.readAccess ← [readAccess[temp172]]] };
stringName => {
temp172: ROPE;
temp172 ← CrRPC.GetRope[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.stringName ← [stringName[temp172]]] };
version => {
temp172: INT32;
temp172 ← CrRPC.GetInt32[s];
res ← NEW[AlpineEnvironmentP2201V1.PropertyValuePairObject.version ← [version[temp172]]] };
ENDCASE => ERROR;
};
};
MProc161: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AlpineEnvironmentP2201V1.AccessList] ~ {
CrRPC.PutCard16[s, val.length];
FOR i173: CARDINAL IN [0..val.length) DO
CrRPC.PutRope[s, val.body[i173]];
ENDLOOP;
};
CrRPC.RegisterServerProc[pgm~2202, serverProc~Server, pgmVersion~2];
CrRPC.EnsureListener[class~$SPP];
}...