DIRECTORY SRPCCalls USING [ ExportSunRPCInterface ], SunRPC, ThrushSunRPC, SynthesizerServerSunRPC, SynthesizerServerSunExport, SynthesizerServerSunRPCServer; SynthesizerServerSunRPCServerStub: CEDAR PROGRAM IMPORTS SRPCCalls, SunRPC, SynthesizerServerSunRPCServer EXPORTS SynthesizerServerSunExport ~ { OPEN SynthesizerServerSunRPC, SynthesizerServerSunRPCServer; Handle: TYPE = SunRPC.Handle; GetSynthesizerSpecificationsCaller: PROC [h: Handle, beginReturn: SunRPCBeginReturnProc] ~ { shhh: CARD32; serviceID: CARD32; nb: ROPE; synthesizerModel: ROPE; synthesizerVersion: ROPE; { shhh ¬ SunRPC.GetCard32[h]; }; { serviceID ¬ SunRPC.GetCard32[h]; }; [nb, synthesizerModel, synthesizerVersion] ¬ GetSynthesizerSpecifications[h, shhh, serviceID]; beginReturn[h]; { SunRPC.PutRope[h, nb]; }; { SunRPC.PutRope[h, synthesizerModel]; }; { SunRPC.PutRope[h, synthesizerVersion]; }; }; StopSpeechCaller: PROC [h: Handle, beginReturn: SunRPCBeginReturnProc] ~ { shhh: CARD32; credentials: ThrushSunRPC.Credentials; serviceID: CARD32; reset: BOOLEAN; nb: ROPE; { shhh ¬ SunRPC.GetCard32[h]; }; { credentials.partyID ¬ SunRPC.GetCard32[h]; credentials.smartsID ¬ SunRPC.GetCard32[h]; credentials.convID ¬ SunRPC.GetCard32[h]; credentials.state ¬ VAL[CARDINAL[SunRPC.GetCard32[h]]]; credentials.stateID ¬ SunRPC.GetCard32[h]; }; { serviceID ¬ SunRPC.GetCard32[h]; }; { reset ¬ SunRPCGetBool[h]; }; [nb] ¬ StopSpeech[h, shhh, credentials, serviceID, reset]; beginReturn[h]; { SunRPC.PutRope[h, nb]; }; }; TextToSpeechCaller: PROC [h: Handle, beginReturn: SunRPCBeginReturnProc] ~ { shhh: CARD32; credentials: ThrushSunRPC.Credentials; serviceID: CARD32; textToSpeak: ROPE; actionID: CARD32; filter: BOOLEAN; queueIt: BOOLEAN; nb: ROPE; { shhh ¬ SunRPC.GetCard32[h]; }; { credentials.partyID ¬ SunRPC.GetCard32[h]; credentials.smartsID ¬ SunRPC.GetCard32[h]; credentials.convID ¬ SunRPC.GetCard32[h]; credentials.state ¬ VAL[CARDINAL[SunRPC.GetCard32[h]]]; credentials.stateID ¬ SunRPC.GetCard32[h]; }; { serviceID ¬ SunRPC.GetCard32[h]; }; { textToSpeak ¬ SunRPC.GetRope[h]; }; { actionID ¬ SunRPC.GetCard32[h]; }; { filter ¬ SunRPCGetBool[h]; }; { queueIt ¬ SunRPCGetBool[h]; }; [nb] ¬ TextToSpeech[h, shhh, credentials, serviceID, textToSpeak, actionID, filter, queueIt]; beginReturn[h]; { SunRPC.PutRope[h, nb]; }; }; SunRPCBeginReturnProc: TYPE ~ PROC [h: Handle]; Server: SunRPC.ServerProc ~ { ENABLE { }; beginReturn: SunRPCBeginReturnProc ~ { SunRPC.StartReply[h]; }; doReply ¬ TRUE; replyTimeToLive ¬ 2; SELECT proc FROM 3 => GetSynthesizerSpecificationsCaller[h, beginReturn]; 2 => StopSpeechCaller[h, beginReturn]; 1 => TextToSpeechCaller[h, beginReturn]; ENDCASE => { ERROR SunRPC.Error[$wrongProc]; }; }; SunRPCGetBool: PROC [h: Handle] RETURNS [BOOL] ~ INLINE { RETURN [SunRPC.GetCard32[h] # 0] }; SunRPCPutBool: PROC [h: Handle, bool: BOOL] ~ INLINE { SunRPC.PutCard32[h, IF bool THEN 1 ELSE 0] }; sunPgm: CARD ¬ 390911; -- decimal program number sunPgmVersion: CARD ¬ 1; ExportInterface: PUBLIC PROC [port: CARD¬0] RETURNS [uniquePort: CARD] ~ { uniquePort ¬ SRPCCalls.ExportSunRPCInterface[port, Server, sunPgm, sunPgmVersion]; }; }... : SynthesizerServerSunRPCServerStub.mesa Copyright Σ 1990, 1992 by Xerox Corporation. All rights reserved. Derived from SynthesizerServerP911V1ServerImpl.mesa Generated by Pier.pa at May 18, 1990 4:51:07 pm PDT using Sirocco [2.0] of February 10, 1989 6:26:26 pm PST Polle Zellweger (PTZ) May 23, 1990 6:57:42 pm PDT Swinehart, September 18, 1990 8:04:01 am PDT Initialize server Polle Zellweger (PTZ) May 23, 1990 6:53:02 pm PDT Change Get/PutCard16 to Get/PutCard32, because the former are not aligned on the wire. Change VAL[CARD32] to VAL[CARDINAL[CARD32]]. Κ/•NewlineDelimiter –(cedarcode) style™šœ&™&Jšœ Οeœ7™BJšœ3™3Jšœ3™3Jšœ7™7J™1Icode™,K˜—šΟk ˜ Kšœ žœ˜*K˜K˜ K˜Kšœ˜Kšœ˜—K˜šΟn!œžœž˜0Kšžœ1˜8Kšžœ˜&Kšžœ8˜<—K˜Kšœžœ˜K˜šŸ"œžœ4˜\Kšœžœ˜ Kšœ žœ˜Kšœžœ˜ Kšœžœ˜Kšœžœ˜K˜˜K˜K˜—˜K˜ K˜—K˜K˜^K˜K˜K˜˜K˜K˜—˜K˜$K˜—˜K˜&K˜—K˜K˜—šŸœžœ4˜JKšœžœ˜ K˜&Kšœ žœ˜Kšœžœ˜Kšœžœ˜ K˜˜K˜K˜—˜K˜*K˜+K˜)Kšœžœžœ˜7K˜*K˜—˜K˜ K˜—˜K˜K˜—K˜K˜:K˜K˜K˜˜K˜K˜—K˜K˜—šŸœžœ4˜LKšœžœ˜ K˜&Kšœ žœ˜Kšœ žœ˜Kšœ žœ˜Kšœžœ˜Kšœ žœ˜Kšœžœ˜ K˜˜K˜K˜—˜K˜*K˜+K˜)Kšœžœžœ˜7K˜*K˜—˜K˜ K˜—˜K˜ K˜—˜K˜K˜—˜K˜K˜—˜K˜K˜—K˜K˜]K˜K˜K˜˜K˜K˜—K˜K˜—Kšœžœžœ ˜/K˜šŸœ˜K˜šžœ˜K˜—K˜K˜&K˜K˜K˜Kšœ žœ˜K˜K˜K˜šžœž˜K˜9K˜'K˜)šžœ˜ Kšžœ˜K˜——K˜K˜—˜š Ÿ œžœ žœžœžœ˜9Kšžœ˜#—šŸ œžœžœžœ˜6Kšœžœžœžœ˜-——™K˜Kšœžœ Οc˜1Kšœžœ˜K˜—š Ÿœžœžœžœžœžœ˜JK˜RK˜K˜—K˜™1Kš œ_žœžœžœžœžœ™„—K˜—…— hΡ