BluejayRegisterLocalImpl.mesa
Copyright © 1985, 1986 by Xerox Corporation. All rights reserved.
Last modified by D. Swinehart, July 6, 1987 3:22:21 pm PDT
Doug Terry, November 18, 1986 3:27:56 pm PST
DIRECTORY
RecordingServiceRegister,
ThPartyPrivate USING [ RegisterLocal ],
Thrush  USING [ ActionReport, ConvEvent, Credentials, NB, NetAddress, nullID, PartyID, Reason, ROPE, SHHH, SmartsID, unencrypted ],
ThSmarts,
ThSmartsRpcControl USING [ InterfaceRecord, NewInterfaceRecord ],
VoiceUtils USING [ OwnNetAddress, Report ]
;
BluejayRegisterLocalImpl: CEDAR PROGRAM
IMPORTS RecordingServiceRegister, ThPartyPrivate, ThSmarts, ThSmartsRpcControl, VoiceUtils
EXPORTS RecordingServiceRegister = {
BluejayRegister: PUBLIC PROC[bluejayInstance, thrushInstance, serverPassword: Thrush.ROPE]
RETURNS [nb: Thrush.NB, credentials: Thrush.Credentials] = {
smartsInterface: ThSmartsRpcControl.InterfaceRecord;
RecordingServiceRegister.jayShh ← Thrush.unencrypted;
RecordingServiceRegister.interfaceIsImported←TRUE;
Register First Jay Party.
smartsInterface ← ThSmartsRpcControl.NewInterfaceRecord[];
smartsInterface.clientStubProgress ← Progress;
smartsInterface.clientStubReportAction ← ReportAction;
smartsInterface.clientStubSubstitution ← Substitution;
smartsInterface.clientStubCheckIn ← CheckIn;
[nb, credentials] ← ThPartyPrivate.RegisterLocal[
rName: "recording",
type: $service,
interfaceRecord: smartsInterface,
properties: [role: $voiceTerminal, netAddress: VoiceUtils.OwnNetAddress[]]
];
IF nb#$success THEN {
VoiceUtils.Report["Bluejay registration failed", $Bluejay];
};
};
BluejayRegister.nb~$ <a variety of bad problems, none recoverable>
Progress: PROC[
interface: ThSmartsRpcControl.InterfaceRecord,
shh: Thrush.SHHH,
convEvent: Thrush.ConvEvent
] = { ThSmarts.Progress[shh, convEvent]; };
ReportAction: PROC[
interface: ThSmartsRpcControl.InterfaceRecord,
shh: Thrush.SHHH←Thrush.unencrypted,
report: Thrush.ActionReport
] = { ThSmarts.ReportAction[shh, report]; };
Substitution: PROC[
interface: ThSmartsRpcControl.InterfaceRecord,
shh: Thrush.SHHH←Thrush.unencrypted,
convEvent: Thrush.ConvEvent,
oldPartyID: Thrush.PartyID,
newPartyID: Thrush.PartyID
] = { ThSmarts.Substitution[shh, convEvent, oldPartyID, newPartyID]; };
CheckIn: PROC[
interface: ThSmartsRpcControl.InterfaceRecord,
shh: Thrush.SHHH,
credentials: Thrush.Credentials,
reason: Thrush.Reason,
nextScheduledCheck: INT
] = { ThSmarts.CheckIn[shh, credentials, reason, nextScheduledCheck]; };
}.
Swinehart, May 15, 1985 10:29:50 am PDT
Cedar 6.0
changes to: BluejayRegister (change to CreateParty)
Swinehart, May 22, 1985 12:06:37 pm PDT
recording => service, Jay=>Recording
changes to: BluejayRegister
Swinehart, May 17, 1986 3:30:53 pm PDT
Cedar 6.1
changes to: DIRECTORY, BluejayRegisterLocalImpl
Swinehart, June 4, 1986 0:10:17 am PDT
New Thrush design
changes to: DIRECTORY, BluejayRegisterLocalImpl
Doug Terry, November 18, 1986 3:15:01 pm PST
Changed to export to RecordingServiceRegister instead of BluejaySmarts.
changes to: DIRECTORY, BluejayRegisterLocalImpl