Route66Query1.cr
Copyright Ó 1988 by Xerox Corporation. All rights reserved.
Bill Jackson (bj) July 13, 1988 6:19:08 pm PDT
Route66Query: PROGRAM 2233 VERSION 1 = BEGIN
DEPENDS UPON
BulkData (0) VERSION 1,
Authentication (14) VERSION 2;
Card32: TYPE = LONG CARDINAL;
Int32: TYPE = LONG INTEGER;
String: TYPE = STRING;
Time: TYPE = LONG CARDINAL; -- seconds since 1-Jan-1970 GMT
Access to SunRPC version System33
docIDSize: CARDINAL = 32;
DocId: TYPE = STRING;
PACKED ARRAY [0..docIDSize) OF BYTE
StringList: TYPE = SEQUENCE OF STRING;
FileLocation: TYPE = RECORD [
fileServer: String, -- file protocol + server name
fileName: String, -- server-relative file name
fileFormat: String, -- file format name; unknown => empty
startByte: Int32, -- start byte position in file
numBytes: Int32, -- number of bytes; unknown => -1
timeLimit: Time -- file valid until
];
FileLocFilter: TYPE = RECORD [
servers: StringList, -- file protocols/servers; empty => any
formats: StringList, -- file format names; empty => any
timeLimit: Time -- file needed until
];
IdLocList: TYPE = SEQUENCE OF IdLoc;
IdLoc: TYPE = RECORD [ docId: DocId, fileLocation: FileLocation ];
OpHandle: TYPE = RECORD [
operation: Card32, -- may be compared for equality.
sequence: Card32 -- opaque
];
ProgressReport: TYPE = RECORD [
workDone: Int32, -- measure of work done so far, unknown => -1
workPending: Int32, -- estimated work pending, done => 0, unknown => -1
timePending: Int32, -- estimated seconds until completion, unknown => -1
timeWait: Int32 -- estimated seconds until next result, unknown => -1
];
ResultType: TYPE = {
matches(0),  -- return number of matches only
handles(1),  -- return file handles
locations(2),  -- return file locations
handlesAndLocations(3), -- return handles and locations
timeEstimate(4), -- return time estimate only (do not search)
lengths(8),  -- return lengths in file locations
last(65535)
};
Error: ERROR [ message: String ] = 1;
ArpaService: TYPE = String;
for now, the name of the sun you want to contact
Null: PROCEDURE [ service: ArpaService ] REPORTS [ Error ] = 0;
Locate: PROCEDURE [ service: ArpaService, userName: String, locateSpec: StringList,
docId: DocId, fileLocFilter: FileLocFilter, bufferSize: Int32, resultType: ResultType ]
RETURNS [ progress: ProgressReport, matches: Int32, newOp: OpHandle,
idLocs: IdLocList ] REPORTS [ Error ] = 1;
LocateMore: PROCEDURE [ service: ArpaService, oldOp: OpHandle, bufferSize: Int32, resultType: ResultType ] RETURNS [ progress: ProgressReport, matches: Int32,
newOp: OpHandle, idLocs: IdLocList ] REPORTS [ Error ] = 2;
ReleaseOpHandle: PROCEDURE [ service: ArpaService, oldOp: OpHandle ]
REPORTS [ Error ] = 3;
Access to the System33 Storage System (via Cedar FS)
Credentials: TYPE = Authentication.Credentials;
Verifier: TYPE = Authentication.Verifier;
Session: TYPE = RECORD [ token: SessionToken, verifier: Verifier ];
SessionToken: TYPE = Card32;
StorageObjectName: TYPE = FileLocation;
Logon: PROCEDURE [ service: ArpaService, credentials: Credentials, verifier: Verifier ]
RETURNS [ newSession: Session ] REPORTS [ Error ] = 10;
Retrieve: PROCEDURE [ oldSession: Session, file: StorageObjectName, content: BulkData.Sink ] RETURNS [ newSession: Session ] REPORTS [ Error ] = 12;
Store: PROCEDURE [ oldSession: Session, file: StorageObjectName, content: BulkData.Source ] RETURNS [ newSession: Session ] REPORTS [ Error ] = 13;
Logoff: PROCEDURE [ session: Session ] REPORTS [ Error ] = 11;
END.