DIRECTORY BasicTime, FS, IO USING [ STREAM ], Pup USING [Address], Rope USING [ ROPE ], RPC USING [ShortROPE], UserCredentials USING [State]; 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; rGeneric: PROC [requestCode: ATOM, requestString: ROPE] RETURNS [resultCode: ATOM, resultString: ROPE]; -- generic call to allow for expansion without RPC interface recompilation 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: Pup.Address, pattern: ROPE, wDir: RPC.ShortROPE] RETURNS [fullFName, attachedTo: ROPE, created: BasicTime.GMT, bytes: INT, keep: CARDINAL, continue: BOOLEAN]; rNextEnumerateForInfo: PROC [listenerPupAddress: Pup.Address] RETURNS [fullFName, attachedTo: ROPE, created: BasicTime.GMT, bytes: INT, keep: CARDINAL, continue: BOOLEAN]; rStartEnumerateForNames: PROC [listenerPupAddress: Pup.Address, pattern: ROPE, wDir: RPC.ShortROPE] RETURNS [fullFName: ROPE, continue: BOOLEAN]; rNextEnumerateForNames: PROC [listenerPupAddress: Pup.Address] RETURNS [fullFName: ROPE, continue: BOOLEAN]; rDoneEnumerate: PROC [listenerPupAddress: Pup.Address]; rOpen: PROC [listenerPupAddress: Pup.Address, 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: Pup.Address, name: ROPE, setPages: BOOLEAN _ TRUE, pages: INT _ 0, setKeep: BOOLEAN _ FALSE, keep: CARDINAL _ 1, wDir: RPC.ShortROPE] RETURNS [OpenFile]; rOpenOrCreate: PROC [listenerPupAddress: Pup.Address, name: ROPE, keep: CARDINAL _ 1, pages: INT _ 5, wDir: RPC.ShortROPE] RETURNS [OpenFile]; rGetClass: PROC [listenerPupAddress: Pup.Address, file: OpenFile] RETURNS [ATOM]; rSameFile: PROC [listenerPupAddress: Pup.Address, file1, file2: OpenFile] RETURNS [BOOLEAN]; rGetName: PROC [listenerPupAddress: Pup.Address, file: OpenFile] RETURNS [fullFName, attachedTo: ROPE]; rGetInfo: PROC [listenerPupAddress: Pup.Address, file: OpenFile] RETURNS [keep: CARDINAL, pages, bytes: INT, created: BasicTime.GMT, lock: FS.Lock]; rSetPageCount: PROC [listenerPupAddress: Pup.Address, file: OpenFile, pages: INT]; rSetByteCountAndCreatedTime: PROC [listenerPupAddress: Pup.Address, file: OpenFile, bytes: INT _ -1, created: BasicTime.GMT _ BasicTime.nullGMT]; rRead: PROC [listenerPupAddress: Pup.Address, file: OpenFile, from, nPages: INT, pageBuffer: RESULTPageBuffer] ; rWrite: PROC [listenerPupAddress: Pup.Address, file: OpenFile, to: INT, nPages: INT, pageBuffer: VALUEPageBuffer]; rClose: PROC [listenerPupAddress: Pup.Address, file: OpenFile]; rCopy: PROC [listenerPupAddress: Pup.Address, 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: Pup.Address, name: ROPE, wantedCreatedTime: BasicTime.GMT _ BasicTime.nullGMT, wDir: RPC.ShortROPE _ NIL]; rRename: PROC [listenerPupAddress: Pup.Address, from, to: ROPE, setKeep: BOOLEAN _ FALSE, keep: CARDINAL _ 1, wantedCreatedTime: BasicTime.GMT _ BasicTime.nullGMT, wDir: RPC.ShortROPE _ NIL]; rSetKeep: PROC [listenerPupAddress: Pup.Address, name: ROPE, keep: CARDINAL _ 1, wDir: RPC.ShortROPE _ NIL]; rBoolean: PROC [listenerPupAddress: Pup.Address, key: Rope.ROPE, default: BOOLEAN _ FALSE] RETURNS [value: BOOLEAN]; rNumber: PROC [listenerPupAddress: Pup.Address, key: Rope.ROPE, default: INT _ 0] RETURNS [value: INT]; rToken: PROC [listenerPupAddress: Pup.Address, key: Rope.ROPE, default: Rope.ROPE _ NIL] RETURNS [value: Rope.ROPE]; rListOfTokens: PROC [listenerPupAddress: Pup.Address, key: Rope.ROPE, default: LIST OF Rope.ROPE _ NIL] RETURNS [value: LIST OF Rope.ROPE]; rLine: PROC [listenerPupAddress: Pup.Address, key: Rope.ROPE, default: Rope.ROPE _ NIL] RETURNS [value: Rope.ROPE]; rGetProfileName: PROC [listenerPupAddress: Pup.Address] RETURNS [Rope.ROPE]; rGetState: PROC [listenerPupAddress: Pup.Address] RETURNS [UserCredentials.State]; rGet: PROC [listenerPupAddress: Pup.Address] RETURNS [name, password: Rope.ROPE]; OpenDebugStream: PROC [listenerPupAddress: Pup.Address, newListenerPupAddress: Pup.Address, name: Rope.ROPE, serverMachine: Rope.ROPE] RETURNS [byteStreamOK: BOOL _ TRUE] ; OpenSourceViewer: PROC [listenerPupAddress: Pup.Address, name: Rope.ROPE, index: INT ] ; END.... –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, April 18, 1986 12:25:18 pm PST Hal Murray, March 22, 1986 9:15:19 pm PST Copyright c 1984 by Xerox Corporation. All rights reserved. For FS For UserProfile For UserCredentials For Debugging This part of the interface is used to start up a PupStream between the two machines, and to monitor operations. Bob Hagmann May 4, 1985 10:42:35 pm PDT changes to: rCopy, DIRECTORY Bob Hagmann April 18, 1986 9:52:19 am PST added rGeneric Bob Hagmann April 18, 1986 12:25:18 pm PST added UserProfile and UserCredentials stuff from ComputeServerUser; added ComputeServerDebugger Κ€˜headšœ™Ibodyšœ€™€L™;Icode™)Jšœ Οmœ1™