<> <> <<>> DIRECTORY BluejaySmarts, Names USING [ OwnNetAddress ], ThParty USING [ CreateParty ], ThPartyPrivate USING [ RegisterLocal ], Thrush USING [ nullHandle, PartyHandle, ROPE, SmartsHandle, unencrypted ], ThSmarts, ThSmartsRpcControl USING [ InterfaceRecord, NewInterfaceRecord ] ; BluejayRegisterLocalImpl: CEDAR PROGRAM IMPORTS BluejaySmarts, Names, ThParty, ThPartyPrivate, ThSmarts, ThSmartsRpcControl EXPORTS BluejaySmarts = { BluejayRegister: PUBLIC PROC[bluejayInstance, thrushInstance, serverPassword: Thrush.ROPE] RETURNS [partyID: Thrush.PartyHandle_Thrush.nullHandle, smartsID: Thrush.SmartsHandle_Thrush.nullHandle] = { smartsInterface: ThSmartsRpcControl.InterfaceRecord; BluejaySmarts.jayShh _ Thrush.unencrypted; BluejaySmarts.interfaceIsImported_TRUE; <<>> <> partyID_ThParty.CreateParty[type: recording, rName: NIL]; IF partyID=Thrush.nullHandle THEN ERROR; smartsInterface _ ThSmartsRpcControl.NewInterfaceRecord[]; smartsInterface.Progress _ ThSmarts.Progress; smartsID _ ThPartyPrivate.RegisterLocal[ partyID: partyID, interface: smartsInterface, properties: [x: voiceTerminal[machine: Names.OwnNetAddress[]]]]; }; }.