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];
}...