FilingP10V5ServerImpl.Mesa
Copyright Ó 1986, 1991 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
Willie-s, December 11, 1991 7:25 pm 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.RegisterServerProcs[pgm~10, serverProc~Server, pgmLoVersion~5, pgmHiVersion~5];
CrRPC.EnsureListener[class~$SPP];
}...