-- 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.