-- fourtwoGetPutImpl.mesa -- Please do not edit this file. -- It was generated using CedarRPCGen. DIRECTORY Rope, SunRPC, fourtwo, fourtwoGetPut; fourtwoGetPutImpl: CEDAR PROGRAM IMPORTS SunRPC EXPORTS fourtwo, fourtwoGetPut = BEGIN Handle: TYPE = SunRPC.Handle; ROPE: TYPE = Rope.ROPE; GetanswerRec: PUBLIC PROC[h: Handle] RETURNS [res: fourtwo.answerRec] = { res.theAnswer ← SunRPC.GetInt32[h]; res.aDifferentAnswer ← SunRPC.GetRope[h]; res.anotherAnswer ← SunRPC.GetRefText[h]; IF SunRPC.GetInt32[h] # 0 THEN { res.anotherDifferentAnswer ← NEW[INT32]; res.anotherDifferentAnswer↑ ← SunRPC.GetInt32[h]; } ELSE res.anotherDifferentAnswer ← NIL; }; PutanswerRec: PUBLIC PROC[h: Handle, in: fourtwo.answerRec] = { SunRPC.PutInt32[h, in.theAnswer]; SunRPC.PutRope[h, in.aDifferentAnswer]; SunRPC.PutRefText[h, in.anotherAnswer]; IF in.anotherDifferentAnswer = NIL THEN { SunRPC.PutInt32[h, 0]; } ELSE { SunRPC.PutInt32[h, 1]; SunRPC.PutInt32[h, in.anotherDifferentAnswer↑]; }; }; GetquestionRec: PUBLIC PROC[h: Handle] RETURNS [res: fourtwo.questionRec] = { res.theQuestion ← SunRPC.GetRope[h]; res.aRandomNumber ← SunRPC.GetCard32[h]; res.anotherQuestion ← SunRPC.GetRefText[h]; }; PutquestionRec: PUBLIC PROC[h: Handle, in: fourtwo.questionRec] = { SunRPC.PutRope[h, in.theQuestion]; SunRPC.PutCard32[h, in.aRandomNumber]; SunRPC.PutRefText[h, in.anotherQuestion]; }; GetFoo: PUBLIC PROC[h: Handle] RETURNS [res: fourtwo.Foo] = { FOR i: INT IN [0..fourtwo.ANSWERSIZE) DO [] ← SunRPC.GetByte[h]; [] ← SunRPC.GetByte[h]; [] ← SunRPC.GetByte[h]; res.bytes[i] ← SunRPC.GetByte[h]; ENDLOOP; }; PutFoo: PUBLIC PROC[h: Handle, in: fourtwo.Foo] = { FOR i: INT IN [0..fourtwo.ANSWERSIZE) DO SunRPC.PutInt32[h, in.bytes[i]]; ENDLOOP; }; END.