FilingP10V5ServerImpl.Mesa
Copyright (C) 1986 by Xerox Corporation. All rights reserved.
Generated by Diebert.pa at June 6, 1988 7:40:04 am PDT
using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
DIRECTORY
CrRPC,
TimeP15V2,
FilingAttributesP10V5,
CHNameP2V0,
AuthenticationP14V2,
BulkDataP0V1,
FilingP10V5;
FilingP10V5ServerImpl:
CEDAR
PROGRAM
IMPORTS CrRPC, FilingP10V5 ~ {
OPEN FilingP10V5;
ReplaceBytesCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
range: ByteRange;
source: CrRPC.BulkDataSource;
session: Session;
{
FOR i94:
CARDINAL
IN [0..2)
DO
file[i94] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
range.firstByte ← CrRPC.GetCard32[s];
range.count ← CrRPC.GetCard32[s];
};
TRUSTED {
source ← CrRPC.GetBulkDataSource[h, s];
};
{
FOR i95:
CARDINAL
IN [0..2)
DO
session.token[i95] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← ReplaceBytes[h, file, range, source, session];
beginReturn[h];
};
LogoffCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
{
FOR i97:
CARDINAL
IN [0..2)
DO
session.token[i97] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Logoff[h, session];
beginReturn[h];
};
UnifyAccessListsCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
session: Session;
{
FOR i98:
CARDINAL
IN [0..2)
DO
directory[i98] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i99:
CARDINAL
IN [0..2)
DO
session.token[i99] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← UnifyAccessLists[h, directory, session];
beginReturn[h];
};
ChangeAttributesCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
session: Session;
{
FOR i100:
CARDINAL
IN [0..2)
DO
file[i100] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
FOR i102:
CARDINAL
IN [0..2)
DO
session.token[i102] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← ChangeAttributes[h, file, attributes, session];
beginReturn[h];
};
CopyCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
destinationDirectory: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
controls: ControlSequence;
session: Session;
newFile: Handle;
{
FOR i103:
CARDINAL
IN [0..2)
DO
file[i103] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i104:
CARDINAL
IN [0..2)
DO
destinationDirectory[i104] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
controls ← UProc105[h, s];
};
{
FOR i106:
CARDINAL
IN [0..2)
DO
session.token[i106] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[newFile] ← Copy[h, file, destinationDirectory, attributes, controls, session];
beginReturn[h];
{
FOR i107:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, newFile[i107]];
ENDLOOP;
};
};
ChangeControlsCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
controls: ControlSequence;
session: Session;
{
FOR i108:
CARDINAL
IN [0..2)
DO
file[i108] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
controls ← UProc105[h, s];
};
{
FOR i109:
CARDINAL
IN [0..2)
DO
session.token[i109] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← ChangeControls[h, file, controls, session];
beginReturn[h];
};
GetControlsCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
types: ControlTypeSequence;
session: Session;
controls: ControlSequence;
{
FOR i110:
CARDINAL
IN [0..2)
DO
file[i110] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
types ← UProc111[h, s];
};
{
FOR i112:
CARDINAL
IN [0..2)
DO
session.token[i112] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[controls] ← GetControls[h, file, types, session];
beginReturn[h];
{
MProc113[h, s, controls];
};
};
ReplaceCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
content: CrRPC.BulkDataSource;
session: Session;
{
FOR i114:
CARDINAL
IN [0..2)
DO
file[i114] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
TRUSTED {
content ← CrRPC.GetBulkDataSource[h, s];
};
{
FOR i115:
CARDINAL
IN [0..2)
DO
session.token[i115] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Replace[h, file, attributes, content, session];
beginReturn[h];
};
MoveCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
destinationDirectory: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
session: Session;
{
FOR i116:
CARDINAL
IN [0..2)
DO
file[i116] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i117:
CARDINAL
IN [0..2)
DO
destinationDirectory[i117] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
FOR i118:
CARDINAL
IN [0..2)
DO
session.token[i118] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Move[h, file, destinationDirectory, attributes, session];
beginReturn[h];
};
ContinueCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
session: Session;
continuance: CARD16;
{
FOR i119:
CARDINAL
IN [0..2)
DO
session.token[i119] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[continuance] ← Continue[h, session];
beginReturn[h];
{
CrRPC.PutCard16[s, continuance];
};
};
GetAttributesCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
types: AttributeTypeSequence;
session: Session;
attributes: FilingAttributesP10V5.AttributeSequence;
{
FOR i120:
CARDINAL
IN [0..2)
DO
file[i120] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
types ← UProc121[h, s];
};
{
FOR i122:
CARDINAL
IN [0..2)
DO
session.token[i122] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[attributes] ← GetAttributes[h, file, types, session];
beginReturn[h];
{
MProc123[h, s, attributes];
};
};
ListCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
types: AttributeTypeSequence;
scope: ScopeSequence;
listing: CrRPC.BulkDataSink;
session: Session;
{
FOR i124:
CARDINAL
IN [0..2)
DO
directory[i124] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
types ← UProc121[h, s];
};
{
scope ← UProc125[h, s];
};
TRUSTED {
listing ← CrRPC.GetBulkDataSink[h, s];
};
{
FOR i126:
CARDINAL
IN [0..2)
DO
session.token[i126] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← List[h, directory, types, scope, listing, session];
beginReturn[h];
};
DeserializeCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
controls: ControlSequence;
serializedFile: CrRPC.BulkDataSource;
session: Session;
file: Handle;
{
FOR i127:
CARDINAL
IN [0..2)
DO
directory[i127] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
controls ← UProc105[h, s];
};
TRUSTED {
serializedFile ← CrRPC.GetBulkDataSource[h, s];
};
{
FOR i128:
CARDINAL
IN [0..2)
DO
session.token[i128] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[file] ← Deserialize[h, directory, attributes, controls, serializedFile, session];
beginReturn[h];
{
FOR i129:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, file[i129]];
ENDLOOP;
};
};
StoreCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
controls: ControlSequence;
content: CrRPC.BulkDataSource;
session: Session;
file: Handle;
{
FOR i130:
CARDINAL
IN [0..2)
DO
directory[i130] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
controls ← UProc105[h, s];
};
TRUSTED {
content ← CrRPC.GetBulkDataSource[h, s];
};
{
FOR i131:
CARDINAL
IN [0..2)
DO
session.token[i131] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[file] ← Store[h, directory, attributes, controls, content, session];
beginReturn[h];
{
FOR i132:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, file[i132]];
ENDLOOP;
};
};
RetrieveCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
content: CrRPC.BulkDataSink;
session: Session;
{
FOR i133:
CARDINAL
IN [0..2)
DO
file[i133] ← CrRPC.GetCard16[s];
ENDLOOP;
};
TRUSTED {
content ← CrRPC.GetBulkDataSink[h, s];
};
{
FOR i134:
CARDINAL
IN [0..2)
DO
session.token[i134] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Retrieve[h, file, content, session];
beginReturn[h];
};
RetrieveBytesCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
range: ByteRange;
sink: CrRPC.BulkDataSink;
session: Session;
{
FOR i135:
CARDINAL
IN [0..2)
DO
file[i135] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
range.firstByte ← CrRPC.GetCard32[s];
range.count ← CrRPC.GetCard32[s];
};
TRUSTED {
sink ← CrRPC.GetBulkDataSink[h, s];
};
{
FOR i136:
CARDINAL
IN [0..2)
DO
session.token[i136] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← RetrieveBytes[h, file, range, sink, session];
beginReturn[h];
};
LogonCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
service: CHNameP2V0.ThreePartName;
credentials: AuthenticationP14V2.Credentials;
verifier: AuthenticationP14V2.SeqWords;
session: Session;
{
service.organization ← CrRPC.GetRope[s];
service.domain ← CrRPC.GetRope[s];
service.object ← CrRPC.GetRope[s];
};
{
credentials.type ← VAL[CrRPC.GetCard16[s]];
credentials.value ← UProc96[h, s];
};
{
verifier ← UProc96[h, s];
};
[session] ← Logon[h, service, credentials, verifier];
beginReturn[h];
{
FOR i137:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, session.token[i137]];
ENDLOOP;
MProc138[h, s, session.verifier];
};
};
DeleteCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
session: Session;
{
FOR i139:
CARDINAL
IN [0..2)
DO
file[i139] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i140:
CARDINAL
IN [0..2)
DO
session.token[i140] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Delete[h, file, session];
beginReturn[h];
};
SerializeCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
serializedFile: CrRPC.BulkDataSink;
session: Session;
{
FOR i141:
CARDINAL
IN [0..2)
DO
file[i141] ← CrRPC.GetCard16[s];
ENDLOOP;
};
TRUSTED {
serializedFile ← CrRPC.GetBulkDataSink[h, s];
};
{
FOR i142:
CARDINAL
IN [0..2)
DO
session.token[i142] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Serialize[h, file, serializedFile, session];
beginReturn[h];
};
FindCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
scope: ScopeSequence;
controls: ControlSequence;
session: Session;
file: Handle;
{
FOR i143:
CARDINAL
IN [0..2)
DO
directory[i143] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
scope ← UProc125[h, s];
};
{
controls ← UProc105[h, s];
};
{
FOR i144:
CARDINAL
IN [0..2)
DO
session.token[i144] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[file] ← Find[h, directory, scope, controls, session];
beginReturn[h];
{
FOR i145:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, file[i145]];
ENDLOOP;
};
};
CreateCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
directory: Handle;
attributes: FilingAttributesP10V5.AttributeSequence;
controls: ControlSequence;
session: Session;
file: Handle;
{
FOR i146:
CARDINAL
IN [0..2)
DO
directory[i146] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
attributes ← UProc101[h, s];
};
{
controls ← UProc105[h, s];
};
{
FOR i147:
CARDINAL
IN [0..2)
DO
session.token[i147] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[file] ← Create[h, directory, attributes, controls, session];
beginReturn[h];
{
FOR i148:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, file[i148]];
ENDLOOP;
};
};
CloseCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
file: Handle;
session: Session;
{
FOR i149:
CARDINAL
IN [0..2)
DO
file[i149] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
FOR i150:
CARDINAL
IN [0..2)
DO
session.token[i150] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← Close[h, file, session];
beginReturn[h];
};
OpenCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
attributes: FilingAttributesP10V5.AttributeSequence;
directory: Handle;
controls: ControlSequence;
session: Session;
file: Handle;
{
attributes ← UProc101[h, s];
};
{
FOR i151:
CARDINAL
IN [0..2)
DO
directory[i151] ← CrRPC.GetCard16[s];
ENDLOOP;
};
{
controls ← UProc105[h, s];
};
{
FOR i152:
CARDINAL
IN [0..2)
DO
session.token[i152] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[file] ← Open[h, attributes, directory, controls, session];
beginReturn[h];
{
FOR i153:
CARDINAL
IN [0..2)
DO
CrRPC.PutCard16[s, file[i153]];
ENDLOOP;
};
};
SetServiceCaller:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, beginReturn: CrRPC.BeginReturnProc] ~ {
service: CHNameP2V0.ThreePartName;
session: Session;
{
service.organization ← CrRPC.GetRope[s];
service.domain ← CrRPC.GetRope[s];
service.object ← CrRPC.GetRope[s];
};
{
FOR i154:
CARDINAL
IN [0..2)
DO
session.token[i154] ← CrRPC.GetCard16[s];
ENDLOOP;
session.verifier ← UProc96[h, s];
};
[] ← SetService[h, service, session];
beginReturn[h];
};
Server: CrRPC.ServerProc ~ {
[h: Handle, s: STREAM, pgm: CARD32, pgmVersion: CARD16, proc: CARD16, beginReturn: BeginReturnProc, beginError: BeginErrorProc, beginReject: BeginRejectProc]
ENABLE {
FilingP10V5.HandleError => {
-- (9 )
beginError[h, 9 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.ControlTypeError => {
-- (2 )
beginError[h, 2 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard16[s, ORD[type]];
GOTO Finished;
};
FilingP10V5.TransferError => {
-- (14 )
beginError[h, 14 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.SpaceError => {
-- (13 )
beginError[h, 13 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.ServiceError => {
-- (11 )
beginError[h, 11 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.RangeError => {
-- (16 )
beginError[h, 16 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.SessionError => {
-- (12 )
beginError[h, 12 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.UndefinedError => {
-- (15 )
beginError[h, 15 ];
CrRPC.PutCard16[s, problem];
GOTO Finished;
};
FilingP10V5.ConnectionError => {
-- (8 )
beginError[h, 8 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.AuthenticationError => {
-- (7 )
beginError[h, 7 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.ScopeValueError => {
-- (5 )
beginError[h, 5 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard16[s, ORD[type]];
GOTO Finished;
};
FilingP10V5.AttributeValueError => {
-- (1 )
beginError[h, 1 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard32[s, type];
GOTO Finished;
};
FilingP10V5.InsertionError => {
-- (10 )
beginError[h, 10 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.ControlValueError => {
-- (3 )
beginError[h, 3 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard16[s, ORD[type]];
GOTO Finished;
};
FilingP10V5.AccessError => {
-- (6 )
beginError[h, 6 ];
CrRPC.PutCard16[s, ORD[problem]];
GOTO Finished;
};
FilingP10V5.AttributeTypeError => {
-- (0 )
beginError[h, 0 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard32[s, type];
GOTO Finished;
};
FilingP10V5.ScopeTypeError => {
-- (4 )
beginError[h, 4 ];
CrRPC.PutCard16[s, ORD[problem]];
CrRPC.PutCard16[s, ORD[type]];
GOTO Finished;
};
};
IF (pgmVersion # 5)
THEN {
beginReject[h, CrRPC.noSuchVersion];
CrRPC.PutCard16[s, 5]; --low
CrRPC.PutCard16[s, 5]; --high
RETURN
};
SELECT proc
FROM
23 => ReplaceBytesCaller[h, s, beginReturn];
1 => LogoffCaller[h, s, beginReturn];
20 => UnifyAccessListsCaller[h, s, beginReturn];
9 => ChangeAttributesCaller[h, s, beginReturn];
10 => CopyCaller[h, s, beginReturn];
7 => ChangeControlsCaller[h, s, beginReturn];
6 => GetControlsCaller[h, s, beginReturn];
14 => ReplaceCaller[h, s, beginReturn];
11 => MoveCaller[h, s, beginReturn];
19 => ContinueCaller[h, s, beginReturn];
8 => GetAttributesCaller[h, s, beginReturn];
18 => ListCaller[h, s, beginReturn];
16 => DeserializeCaller[h, s, beginReturn];
12 => StoreCaller[h, s, beginReturn];
13 => RetrieveCaller[h, s, beginReturn];
22 => RetrieveBytesCaller[h, s, beginReturn];
0 => LogonCaller[h, s, beginReturn];
5 => DeleteCaller[h, s, beginReturn];
15 => SerializeCaller[h, s, beginReturn];
17 => FindCaller[h, s, beginReturn];
4 => CreateCaller[h, s, beginReturn];
3 => CloseCaller[h, s, beginReturn];
2 => OpenCaller[h, s, beginReturn];
21 => SetServiceCaller[h, s, beginReturn];
ENDCASE => {
beginReject[h, CrRPC.noSuchProcedure];
};
EXITS
Finished => { NULL };
};
Unmarshal / Marshal Procs --
UProc105:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: ControlSequence] ~ {
{
length156: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[ControlSequenceObject[length156]];
FOR i155:
CARDINAL
IN [0..length156)
DO
res.body[i155] ← UProc157[h, s];
ENDLOOP;
};
};
UProc121:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: AttributeTypeSequence] ~ {
{
length159: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AttributeTypeSequenceObject[length159]];
FOR i158:
CARDINAL
IN [0..length159)
DO
res.body[i158] ← CrRPC.GetCard32[s];
ENDLOOP;
};
};
MProc123:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: FilingAttributesP10V5.AttributeSequence] ~ {
CrRPC.PutCard16[s, val.length];
FOR i160:
CARDINAL
IN [0..val.length)
DO
CrRPC.PutCard32[s, val.body[i160].type];
MProc161[h, s, val.body[i160].value];
ENDLOOP;
};
UProc125:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: ScopeSequence] ~ {
{
length163: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[ScopeSequenceObject[length163]];
FOR i162:
CARDINAL
IN [0..length163)
DO
res.body[i162] ← UProc164[h, s];
ENDLOOP;
};
};
MProc113:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: ControlSequence] ~ {
CrRPC.PutCard16[s, val.length];
FOR i165:
CARDINAL
IN [0..val.length)
DO
MProc166[h, s, val.body[i165]];
ENDLOOP;
};
UProc164:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: Scope] ~ {
{
tag167: ScopeType ~ VAL[CrRPC.GetCard16[s]];
SELECT tag167
FROM
count => {
temp168: CARD16;
temp168 ← CrRPC.GetCard16[s];
res ← NEW[ScopeObject.count ← [count[temp168]]] };
depth => {
temp168: CARD16;
temp168 ← CrRPC.GetCard16[s];
res ← NEW[ScopeObject.depth ← [depth[temp168]]] };
direction => {
temp168: Direction;
temp168 ← VAL[CrRPC.GetCard16[s]];
res ← NEW[ScopeObject.direction ← [direction[temp168]]] };
filter => {
temp168: Filter;
temp168 ← UProc169[h, s];
res ← NEW[ScopeObject.filter ← [filter[temp168]]] };
ENDCASE => ERROR;
};
};
UProc96:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: AuthenticationP14V2.SeqWords] ~ {
{
length171: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AuthenticationP14V2.SeqWordsObject[length171]];
FOR i170:
CARDINAL
IN [0..length171)
DO
res.body[i170] ← CrRPC.GetCard16[s];
ENDLOOP;
};
};
UProc101:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: FilingAttributesP10V5.AttributeSequence] ~ {
{
length173: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[FilingAttributesP10V5.AttributeSequenceObject[length173]];
FOR i172:
CARDINAL
IN [0..length173)
DO
res.body[i172].type ← CrRPC.GetCard32[s];
res.body[i172].value ← UProc174[h, s];
ENDLOOP;
};
};
UProc111:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: ControlTypeSequence] ~ {
{
length176: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[ControlTypeSequenceObject[length176]];
FOR i175:
CARDINAL
IN [0..length176)
DO
res.body[i175] ← VAL[CrRPC.GetCard16[s]];
ENDLOOP;
};
};
UProc169:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: Filter] ~ {
{
tag177: FilterType ~ VAL[CrRPC.GetCard16[s]];
SELECT tag177
FROM
less => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.less ← [less[temp178]]] };
lessOrEqual => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.lessOrEqual ← [lessOrEqual[temp178]]] };
equal => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.equal ← [equal[temp178]]] };
notEqual => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.notEqual ← [notEqual[temp178]]] };
greaterOrEqual => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.greaterOrEqual ← [greaterOrEqual[temp178]]] };
greater => {
temp178: RelationFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
temp178.interpretation ← VAL[CrRPC.GetCard16[s]];
res ← NEW[FilterObject.greater ← [greater[temp178]]] };
and => {
temp178: EmptyRecord;
temp178.null ← 0;
res ← NEW[FilterObject.and ← [and[temp178]]] };
or => {
temp178: EmptyRecord;
temp178.null ← 0;
res ← NEW[FilterObject.or ← [or[temp178]]] };
not => {
temp178: EmptyRecord;
temp178.null ← 0;
res ← NEW[FilterObject.not ← [not[temp178]]] };
none => {
temp178: EmptyRecord;
temp178.null ← 0;
res ← NEW[FilterObject.none ← [none[temp178]]] };
all => {
temp178: EmptyRecord;
temp178.null ← 0;
res ← NEW[FilterObject.all ← [all[temp178]]] };
matches => {
temp178: PatternFilter;
temp178.attribute.type ← CrRPC.GetCard32[s];
temp178.attribute.value ← UProc174[h, s];
res ← NEW[FilterObject.matches ← [matches[temp178]]] };
ENDCASE => ERROR;
};
};
MProc138:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: AuthenticationP14V2.SeqWords] ~ {
CrRPC.PutCard16[s, val.length];
FOR i179:
CARDINAL
IN [0..val.length)
DO
CrRPC.PutCard16[s, val.body[i179]];
ENDLOOP;
};
MProc166:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: Control] ~ {
CrRPC.PutCard16[s, ORD[val.type]];
WITH val
SELECT
FROM
it:
REF ControlObject.lock => {
CrRPC.PutCard16[s, ORD[it^.lock]];
};
it:
REF ControlObject.timeout => {
CrRPC.PutCard16[s, it^.timeout];
};
it:
REF ControlObject.access => {
MProc181[h, s, it^.access];
};
ENDCASE;
};
UProc157:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: Control] ~ {
{
tag182: ControlType ~ VAL[CrRPC.GetCard16[s]];
SELECT tag182
FROM
lock => {
temp183: Lock;
temp183 ← VAL[CrRPC.GetCard16[s]];
res ← NEW[ControlObject.lock ← [lock[temp183]]] };
timeout => {
temp183: CARD16;
temp183 ← CrRPC.GetCard16[s];
res ← NEW[ControlObject.timeout ← [timeout[temp183]]] };
access => {
temp183: FilingAttributesP10V5.AccessSequence;
temp183 ← UProc184[h, s];
res ← NEW[ControlObject.access ← [access[temp183]]] };
ENDCASE => ERROR;
};
};
MProc161:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: FilingAttributesP10V5.AttributeValue] ~ {
CrRPC.PutCard16[s, val.length];
FOR i185:
CARDINAL
IN [0..val.length)
DO
CrRPC.PutCard16[s, val.body[i185]];
ENDLOOP;
};
UProc174:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: FilingAttributesP10V5.AttributeValue] ~ {
{
length187: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[FilingAttributesP10V5.AttributeValueObject[length187]];
FOR i186:
CARDINAL
IN [0..length187)
DO
res.body[i186] ← CrRPC.GetCard16[s];
ENDLOOP;
};
};
MProc181:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM, val: FilingAttributesP10V5.AccessSequence] ~ {
CrRPC.PutCard16[s, val.length];
FOR i188:
CARDINAL
IN [0..val.length)
DO
CrRPC.PutCard16[s, ORD[val.body[i188]]];
ENDLOOP;
};
UProc184:
PROC [h: CrRPC.Handle, s: CrRPC.
STREAM]
RETURNS [res: FilingAttributesP10V5.AccessSequence] ~ {
{
length190: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[FilingAttributesP10V5.AccessSequenceObject[length190]];
FOR i189:
CARDINAL
IN [0..length190)
DO
res.body[i189] ← VAL[CrRPC.GetCard16[s]];
ENDLOOP;
};
};
CrRPC.RegisterServerProc[pgm~10, serverProc~Server, pgmVersion~5];
CrRPC.EnsureListener[class~$SPP];
}...