-- Copyright (C) 1987 by Xerox Corporation. All rights reserved. -- Stub file was translated on April 4, 1987 3:33:03 pm PST by Lupine of January 22, 1987 5:37:32 pm PST -- Source interface LarkOps came from file LarkOps.bcd, which was created on April 4, 1987 3:32:55 pm PST with version stamp 173#11#3433762513 from source of November 24, 1986 7:59:29 pm PST. -- The RPC stub modules for LarkOps are: -- LarkOpsRpcControl.mesa; -- LarkOpsRpcClientImpl.mesa; -- LarkOpsRpcBinderImpl.mesa; -- LarkOpsRpcServerImpl.mesa. -- The parameters for this translation are: -- Target language = Cedar -- Default parameter passing = VALUE -- Deallocate server heap arguments = TRUE -- Inline RpcServerImpl dispatcher stubs = TRUE -- Declare signals = TRUE -- Warn about short POINTER ("MDS") allocations = TRUE -- Maximum number of dynamic heap NEWs = 50, MDS NEWs = 50 -- Acceptable parameter protocols = VersionRange[1..1]. DIRECTORY IV, Rope, Lark, LarkOps, RPC USING [defaultInterfaceName, EncryptionKey, InterfaceName, Principal, standardZones, VersionRange, Zones], RPCLupine USING [ImportHandle, noHost, RPCHost]; LarkOpsRpcControl: DEFINITIONS SHARES LarkOps = BEGIN OPEN LarkOps, RpcPublic: RPC, RpcPrivate: RPCLupine; -- Public RPC types and constants. InterfaceName: TYPE = RpcPublic.InterfaceName; VersionRange: TYPE = RpcPublic.VersionRange; Principal: TYPE = RpcPublic.Principal; EncryptionKey: TYPE = RpcPublic.EncryptionKey; Zones: TYPE = RpcPublic.Zones; defaultInterfaceName: InterfaceName = RpcPublic.defaultInterfaceName; standardZones: Zones = RpcPublic.standardZones; -- Standard remote binding routines. ImportInterface: SAFE PROCEDURE [ interface: InterfaceRecord, interfaceName: InterfaceName ← defaultInterfaceName, parameterStorage: Zones ← standardZones, hostHint: RpcPrivate.RPCHost←RpcPrivate.noHost]; ExportInterface: SAFE PROCEDURE [ interfaceName: InterfaceName ← defaultInterfaceName, user: Principal, password: EncryptionKey, parameterStorage: Zones ← standardZones ]; UnexportInterface: SAFE PROCEDURE; -- Dynamic instantiation and binding. ImportNewInterface: SAFE PROCEDURE [ interfaceName: InterfaceName ← defaultInterfaceName, parameterStorage: Zones ← standardZones, hostHint: RpcPrivate.RPCHost←RpcPrivate.noHost] RETURNS [interfaceRecord: InterfaceRecord]; -- NewInterfaceRecord is necessary for Cedar clients who want to -- manufacture a private interface instance, because -- RpcBindingImpl has finalization on type InterfaceRecord. NewInterfaceRecord: SAFE PROCEDURE RETURNS [interfaceRecord: InterfaceRecord]; InterfaceRecord: TYPE = REF InterfaceRecordObject; InterfaceRecordObject: TYPE = RECORD [ myInterface: RpcPrivate.ImportHandle ← NIL, paramZones: RpcPublic.Zones ← RpcPublic.standardZones, clientStubReset: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, rName: Lark.ROPE], clientStubSpecifyTones: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, queueIt: BOOLEAN, tones: Lark.ToneSpec] RETURNS [ok: BOOLEAN], clientStubFeep: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, on: Lark.Milliseconds, off: Lark.Milliseconds, waveTable: CARDINAL, queueIt: BOOLEAN, notify: Lark.CommandEvent, events: Lark.CommandEvents] RETURNS [ok: BOOLEAN], clientStubCommands: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, events: Lark.CommandEvents], clientStubConnect: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, specs: Lark.ConnectionSpec], clientStubDisconnect: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, buffer: Lark.VoiceBuffer], clientStubPleaseRegister: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH], clientStubWhatIsStatus: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, which: CARDINAL] RETURNS [next: CARDINAL, events: Lark.StatusEvents], clientStubWhatAreConnections: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, which: CARDINAL] RETURNS [next: CARDINAL, specs: Lark.ConnectionSpec], clientStubWhatAreTones: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH] RETURNS [BOOLEAN], clientStubSetKeyTable: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, table: Lark.KeyTable], clientStubCommandString: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, device: Lark.Device, commands: Rope.ROPE], clientStubPleaseLogin: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH] RETURNS [will: BOOL], clientStubEchoSupression: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, echo: Lark.EchoParameters], clientStubSetHostNumber: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, host: Lark.Machine], clientStubSetParameters: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, parameters: LarkParameters], bound: BOOL ← FALSE]; Reset: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, rName: Lark.ROPE] = CHECKED INLINE { interface.clientStubReset[interface, shh, rName]}; SpecifyTones: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, queueIt: BOOLEAN, tones: Lark.ToneSpec] RETURNS [ok: BOOLEAN] = CHECKED INLINE { RETURN interface.clientStubSpecifyTones[interface, shh, queueIt, tones]}; Feep: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, on: Lark.Milliseconds, off: Lark.Milliseconds, waveTable: CARDINAL, queueIt: BOOLEAN, notify: Lark.CommandEvent, events: Lark.CommandEvents] RETURNS [ok: BOOLEAN] = CHECKED INLINE { RETURN interface.clientStubFeep[interface, shh, on, off, waveTable, queueIt, notify, events]}; Commands: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, events: Lark.CommandEvents] = CHECKED INLINE { interface.clientStubCommands[interface, shh, events]}; Connect: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, specs: Lark.ConnectionSpec] = CHECKED INLINE { interface.clientStubConnect[interface, shh, specs]}; Disconnect: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, buffer: Lark.VoiceBuffer] = CHECKED INLINE { interface.clientStubDisconnect[interface, shh, buffer]}; PleaseRegister: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH] = CHECKED INLINE { interface.clientStubPleaseRegister[interface, shh]}; WhatIsStatus: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, which: CARDINAL] RETURNS [next: CARDINAL, events: Lark.StatusEvents] = CHECKED INLINE { RETURN interface.clientStubWhatIsStatus[interface, shh, which]}; WhatAreConnections: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, which: CARDINAL] RETURNS [next: CARDINAL, specs: Lark.ConnectionSpec] = CHECKED INLINE { RETURN interface.clientStubWhatAreConnections[interface, shh, which]}; WhatAreTones: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH] RETURNS [BOOLEAN] = CHECKED INLINE { RETURN interface.clientStubWhatAreTones[interface, shh]}; SetKeyTable: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, table: Lark.KeyTable] = CHECKED INLINE { interface.clientStubSetKeyTable[interface, shh, table]}; CommandString: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, device: Lark.Device, commands: Rope.ROPE] = CHECKED INLINE { interface.clientStubCommandString[interface, shh, device, commands]}; PleaseLogin: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH] RETURNS [will: BOOL] = CHECKED INLINE { RETURN interface.clientStubPleaseLogin[interface, shh]}; EchoSupression: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, echo: Lark.EchoParameters] = CHECKED INLINE { interface.clientStubEchoSupression[interface, shh, echo]}; SetHostNumber: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, host: Lark.Machine] = CHECKED INLINE { interface.clientStubSetHostNumber[interface, shh, host]}; SetParameters: SAFE PROCEDURE [interface: InterfaceRecord, shh: Lark.SHHH, parameters: LarkParameters] = CHECKED INLINE { interface.clientStubSetParameters[interface, shh, parameters]}; -- Definitions for the stubs. LupineProtocolVersion: PUBLIC VersionRange = [first: 1, last: 1]; InterMdsCallsOnly: PUBLIC BOOLEAN = FALSE; ProcedureIndex: PRIVATE TYPE = MACHINE DEPENDENT { LupineUnusedIndex (0), LupineLastIndex (3), Reset (4), SpecifyTones (5), Feep (6), Commands (7), Connect (8), Disconnect (9), PleaseRegister (10), WhatIsStatus (11), WhatAreConnections (12), WhatAreTones (13), SetKeyTable (14), CommandString (15), PleaseLogin (16), EchoSupression (17), SetHostNumber (18), SetParameters (19)}; SignalIndex: PRIVATE TYPE = MACHINE DEPENDENT { LupineUnusedIndex (0), LupineLastIndex (3)}; END. -- LarkOpsRpcControl.