ComputeServerCallbacks.mesa
Compute Server callback interface for the Summoner. This RPC interface is between the Server (client for this interface) and the Client (who is the server for this interface). The Client and Server reverse rolls here because this is a callback interface.
Last Edited by: Bob Hagmann, May 4, 1985 10:42:35 pm PDT
Copyright © 1984 by Xerox Corporation. All rights reserved.
DIRECTORY
BasicTime,
FS,
IO USING [ STREAM ],
PupDefs,
Rope USING [ ROPE ],
RPC USING [ShortROPE];
ComputeServerCallbacks: CEDAR DEFINITIONS
=
BEGIN
ROPE: TYPE = Rope.ROPE;
STREAM: TYPE = IO.STREAM;
Error: ERROR [error: FS.ErrorDesc];
OpenFile: TYPE = INT;
nullOpenFile: OpenFile = 0;
PageBuffer: TYPE = LONG DESCRIPTOR FOR ARRAY OF WORD;
RESULTPageBuffer: TYPE = PageBuffer;
VALUEPageBuffer: TYPE = PageBuffer;
rSetDefaultWDir: PROC [dir: RPC.ShortROPE];
rGetDefaultWDir: PROC RETURNS [RPC.ShortROPE];
rExpandName: PROC[name: ROPE, wDir: RPC.ShortROPE] RETURNS [fullFName: ROPE, cp: FS.ComponentPositions, dirOmitted: BOOLEAN];
rFileInfo: PROC [name: ROPE, wantedCreatedTime: BasicTime.GMT ← BasicTime.nullGMT, remoteCheck: BOOLEAN ← TRUE, wDir: RPC.ShortROPE] RETURNS [fullFName, attachedTo: ROPE, keep: CARDINAL, bytes: INT, created: BasicTime.GMT];
rStartEnumerateForInfo: PROC [listenerPupAddress: PupDefs.PupAddress, pattern: ROPE, wDir: RPC.ShortROPE] RETURNS [fullFName, attachedTo: ROPE, created: BasicTime.GMT, bytes: INT, keep: CARDINAL, continue: BOOLEAN];
rNextEnumerateForInfo: PROC [listenerPupAddress: PupDefs.PupAddress] RETURNS [fullFName, attachedTo: ROPE, created: BasicTime.GMT, bytes: INT, keep: CARDINAL, continue: BOOLEAN];
rStartEnumerateForNames: PROC [listenerPupAddress: PupDefs.PupAddress, pattern: ROPE, wDir: RPC.ShortROPE] RETURNS [fullFName: ROPE, continue: BOOLEAN];
rNextEnumerateForNames: PROC [listenerPupAddress: PupDefs.PupAddress] RETURNS [fullFName: ROPE, continue: BOOLEAN];
rDoneEnumerate: PROC [listenerPupAddress: PupDefs.PupAddress];
rOpen: PROC [listenerPupAddress: PupDefs.PupAddress, name: ROPE, lock: FS.Lock ← $read, wantedCreatedTime: BasicTime.GMT ← BasicTime.nullGMT, remoteCheck: BOOLEAN ← TRUE, wDir: RPC.ShortROPE, forceRemoteOpen: BOOL ← FALSE] RETURNS [globalNameToOpen: ROPE, openFile: OpenFile];
rCreate: PROC [listenerPupAddress: PupDefs.PupAddress, name: ROPE, setPages: BOOLEAN ← TRUE, pages: INT ← 0, setKeep: BOOLEAN ← FALSE, keep: CARDINAL ← 1, wDir: RPC.ShortROPE] RETURNS [OpenFile];
rOpenOrCreate: PROC [listenerPupAddress: PupDefs.PupAddress, name: ROPE, keep: CARDINAL ← 1, pages: INT ← 5, wDir: RPC.ShortROPE] RETURNS [OpenFile];
rGetClass: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile] RETURNS [ATOM];
rSameFile: PROC [listenerPupAddress: PupDefs.PupAddress, file1, file2: OpenFile] RETURNS [BOOLEAN];
rGetName: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile] RETURNS [fullFName, attachedTo: ROPE];
rGetInfo: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile] RETURNS [keep: CARDINAL, pages, bytes: INT, created: BasicTime.GMT, lock: FS.Lock];
rSetPageCount: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile, pages: INT];
rSetByteCountAndCreatedTime: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile, bytes: INT ← -1, created: BasicTime.GMT ← BasicTime.nullGMT];
rRead: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile, from, nPages: INT, pageBuffer: RESULTPageBuffer] ;
rWrite: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile, to: INT, nPages: INT, pageBuffer: VALUEPageBuffer];
rClose: PROC [listenerPupAddress: PupDefs.PupAddress, file: OpenFile];
rCopy: PROC [listenerPupAddress: PupDefs.PupAddress, from, to: ROPE, setKeep: BOOLEAN ← FALSE, keep: CARDINAL ← 1, wantedCreatedTime: BasicTime.GMT ← BasicTime.nullGMT, remoteCheck: BOOLEAN ← TRUE, attach: BOOLEAN ← FALSE, wDir: RPC.ShortROPE ← NIL] RETURNS [toFName: ROPE];
rDelete: PROC [listenerPupAddress: PupDefs.PupAddress, name: ROPE, wantedCreatedTime: BasicTime.GMT ← BasicTime.nullGMT, wDir: RPC.ShortROPE ← NIL];
rRename: PROC [listenerPupAddress: PupDefs.PupAddress, from, to: ROPE, setKeep: BOOLEAN ← FALSE, keep: CARDINAL ← 1, wantedCreatedTime: BasicTime.GMT ← BasicTime.nullGMT, wDir: RPC.ShortROPE ← NIL];
rSetKeep: PROC [listenerPupAddress: PupDefs.PupAddress, name: ROPE, keep: CARDINAL ← 1, wDir: RPC.ShortROPE ← NIL];
rBoolean: PROC [listenerPupAddress: PupDefs.PupAddress, key: Rope.ROPE, default: BOOLEAN ← FALSE] RETURNS [value: BOOLEAN];
rNumber: PROC [listenerPupAddress: PupDefs.PupAddress, key: Rope.ROPE, default: INT ← 0] RETURNS [value: INT];
rToken: PROC [listenerPupAddress: PupDefs.PupAddress, key: Rope.ROPE, default: Rope.ROPE ← NIL] RETURNS [value: Rope.ROPE];
rListOfTokens: PROC [listenerPupAddress: PupDefs.PupAddress, key: Rope.ROPE, default: LIST OF Rope.ROPE ← NIL] RETURNS [value: LIST OF Rope.ROPE];
rLine: PROC [listenerPupAddress: PupDefs.PupAddress, key: Rope.ROPE, default: Rope.ROPE ← NIL] RETURNS [value: Rope.ROPE];
rGetProfileName: PROC [listenerPupAddress: PupDefs.PupAddress] RETURNS [Rope.ROPE];
rGetState: PROC [listenerPupAddress: PupDefs.PupAddress] RETURNS [UserCredentials.State];
rGet: PROC [listenerPupAddress: PupDefs.PupAddress] RETURNS [name, password: Rope.ROPE];
END....
Bob Hagmann May 4, 1985 10:42:35 pm PDT
changes to: rCopy, DIRECTORY