-- Route66QueryP2233V1ClientImpl.Mesa
-- Copyright (C) 1986 by Xerox Corporation. All rights reserved.
-- Generated by BJackson.pa at July 15, 1988 4:26:24 pm PDT
-- using Sirocco [2.0] of January 31, 1987 1:52:42 am PST
DIRECTORY
CrRPC,
AuthenticationP14V2,
BulkDataP0V1,
Route66QueryP2233V1;
Route66QueryP2233V1ClientImpl: CEDAR PROGRAM
IMPORTS CrRPC
EXPORTS Route66QueryP2233V1 ~ {
OPEN Route66QueryP2233V1;
-- Errors
Error: PUBLIC ErrorType ~ CODE;
-- GetErrorProc
GetError: CrRPC.GetErrorProc ~ {
SELECT errNum FROM
1 => {
message: ROPE;
message ← CrRPC.GetRope[s];
ERROR Error[message]
};
ENDCASE => {
ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"];
};
};
-- Remote Procedures --
Logoff: PUBLIC LogoffType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, session.token];
MProc1[h, s, session.verifier];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~11 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Logon: PUBLIC LogonType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutRope[s, service];
CrRPC.PutCard16[s, ORD[credentials.type]];
MProc1[h, s, credentials.value];
MProc1[h, s, verifier];
};
GetResults: CrRPC.GetResultsProc ~ {
newSession.token ← CrRPC.GetCard32[s];
newSession.verifier ← UProc2[h, s];
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~10 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Retrieve: PUBLIC RetrieveType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, oldSession.token];
MProc1[h, s, oldSession.verifier];
CrRPC.PutRope[s, file.fileServer];
CrRPC.PutRope[s, file.fileName];
CrRPC.PutRope[s, file.fileFormat];
CrRPC.PutInt32[s, file.startByte];
CrRPC.PutInt32[s, file.numBytes];
CrRPC.PutCard32[s, file.timeLimit];
CrRPC.PutBulkDataSink[h, s, content];
};
GetResults: CrRPC.GetResultsProc ~ {
newSession.token ← CrRPC.GetCard32[s];
newSession.verifier ← UProc2[h, s];
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~12 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
ReleaseOpHandle: PUBLIC ReleaseOpHandleType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutRope[s, service];
CrRPC.PutCard32[s, oldOp.operation];
CrRPC.PutCard32[s, oldOp.sequence];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~3 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
LocateMore: PUBLIC LocateMoreType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutRope[s, service];
CrRPC.PutCard32[s, oldOp.operation];
CrRPC.PutCard32[s, oldOp.sequence];
CrRPC.PutInt32[s, bufferSize];
CrRPC.PutCard16[s, ORD[resultType]];
};
GetResults: CrRPC.GetResultsProc ~ {
progress.workDone ← CrRPC.GetInt32[s];
progress.workPending ← CrRPC.GetInt32[s];
progress.timePending ← CrRPC.GetInt32[s];
progress.timeWait ← CrRPC.GetInt32[s];
matches ← CrRPC.GetInt32[s];
newOp.operation ← CrRPC.GetCard32[s];
newOp.sequence ← CrRPC.GetCard32[s];
idLocs ← UProc3[h, s];
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~2 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Locate: PUBLIC LocateType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutRope[s, service];
CrRPC.PutRope[s, userName];
MProc4[h, s, locateSpec];
CrRPC.PutRope[s, docId];
MProc4[h, s, fileLocFilter.servers];
MProc4[h, s, fileLocFilter.formats];
CrRPC.PutCard32[s, fileLocFilter.timeLimit];
CrRPC.PutInt32[s, bufferSize];
CrRPC.PutCard16[s, ORD[resultType]];
};
GetResults: CrRPC.GetResultsProc ~ {
progress.workDone ← CrRPC.GetInt32[s];
progress.workPending ← CrRPC.GetInt32[s];
progress.timePending ← CrRPC.GetInt32[s];
progress.timeWait ← CrRPC.GetInt32[s];
matches ← CrRPC.GetInt32[s];
newOp.operation ← CrRPC.GetCard32[s];
newOp.sequence ← CrRPC.GetCard32[s];
idLocs ← UProc3[h, s];
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~1 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Null: PUBLIC NullType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutRope[s, service];
};
GetResults: CrRPC.GetResultsProc ~ {
NULL
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~0 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
Store: PUBLIC StoreType ~ {
PutArgs: CrRPC.PutArgsProc ~ {
CrRPC.PutCard32[s, oldSession.token];
MProc1[h, s, oldSession.verifier];
CrRPC.PutRope[s, file.fileServer];
CrRPC.PutRope[s, file.fileName];
CrRPC.PutRope[s, file.fileFormat];
CrRPC.PutInt32[s, file.startByte];
CrRPC.PutInt32[s, file.numBytes];
CrRPC.PutCard32[s, file.timeLimit];
CrRPC.PutBulkDataSource[h, s, content];
};
GetResults: CrRPC.GetResultsProc ~ {
newSession.token ← CrRPC.GetCard32[s];
newSession.verifier ← UProc2[h, s];
};
CrRPC.Call[h~h, remotePgm~2233, remotePgmVersion~1, remoteProc~13 , putArgs~PutArgs, getResults~GetResults, getError~GetError];
};
-- Unmarshal / Marshal Procs --
MProc1: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ {
CrRPC.PutCard16[s, val.length];
FOR i5: CARDINAL IN [0..val.length) DO
CrRPC.PutCard16[s, val.body[i5]];
ENDLOOP;
};
UProc3: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: IdLocList] ~ {
{
length7: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[IdLocListObject[length7]];
FOR i6: CARDINAL IN [0..length7) DO
res.body[i6].docId ← CrRPC.GetRope[s];
res.body[i6].fileLocation.fileServer ← CrRPC.GetRope[s];
res.body[i6].fileLocation.fileName ← CrRPC.GetRope[s];
res.body[i6].fileLocation.fileFormat ← CrRPC.GetRope[s];
res.body[i6].fileLocation.startByte ← CrRPC.GetInt32[s];
res.body[i6].fileLocation.numBytes ← CrRPC.GetInt32[s];
res.body[i6].fileLocation.timeLimit ← CrRPC.GetCard32[s];
ENDLOOP;
};
};
UProc2: PROC [h: CrRPC.Handle, s: CrRPC.STREAM] RETURNS [res: AuthenticationP14V2.SeqWords] ~ {
{
length9: CARDINAL ~ CrRPC.GetCard16[s];
res ← NEW[AuthenticationP14V2.SeqWordsObject[length9]];
FOR i8: CARDINAL IN [0..length9) DO
res.body[i8] ← CrRPC.GetCard16[s];
ENDLOOP;
};
};
MProc4: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: StringList] ~ {
CrRPC.PutCard16[s, val.length];
FOR i10: CARDINAL IN [0..val.length) DO
CrRPC.PutRope[s, val.body[i10]];
ENDLOOP;
};
}...