-- TabPostOfficeGetPutImpl.mesa -- Please do not edit this file. -- It was generated using CedarRPCGen. DIRECTORY Rope, SunRPC, TabPostOffice, TabPostOfficeGetPut; TabPostOfficeGetPutImpl: CEDAR PROGRAM IMPORTS SunRPC EXPORTS TabPostOffice, TabPostOfficeGetPut = BEGIN Handle: TYPE = SunRPC.Handle; ROPE: TYPE = Rope.ROPE; GetErrorInfo: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.ErrorInfo] = { res.errno ← SunRPC.GetInt32[h]; res.msg ← SunRPC.GetRope[h]; }; PutErrorInfo: PUBLIC PROC[h: Handle, in: TabPostOffice.ErrorInfo] = { SunRPC.PutInt32[h, in.errno]; SunRPC.PutRope[h, in.msg]; }; GetProperty: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Property] = { res ← SunRPC.GetRope[h]; }; PutProperty: PUBLIC PROC[h: Handle, in: TabPostOffice.Property] = { SunRPC.PutRope[h, in]; }; GetRelation: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Relation] = { res ← SunRPC.GetRope[h]; }; PutRelation: PUBLIC PROC[h: Handle, in: TabPostOffice.Relation] = { SunRPC.PutRope[h, in]; }; GetValue: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Value] = { res ← SunRPC.GetRope[h]; }; PutValue: PUBLIC PROC[h: Handle, in: TabPostOffice.Value] = { SunRPC.PutRope[h, in]; }; GetPropertyArray: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.PropertyArray] = { { len: INT ← SunRPC.GetInt32[h]; res ← NEW[TabPostOffice.SeqType0Object[len]]; FOR i: INT IN [0..len) DO res[i] ← GetProperty[h]; ENDLOOP; }; }; PutPropertyArray: PUBLIC PROC[h: Handle, in: TabPostOffice.PropertyArray] = { SunRPC.PutInt32[h, in.size]; FOR i: INT IN [0..in.size) DO PutProperty[h, in[i]]; ENDLOOP; }; GetPropInfo: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.PropInfo] = { res.p ← GetProperty[h]; res.r ← GetRelation[h]; res.v ← GetValue[h]; }; PutPropInfo: PUBLIC PROC[h: Handle, in: TabPostOffice.PropInfo] = { PutProperty[h, in.p]; PutRelation[h, in.r]; PutValue[h, in.v]; }; GetPropInfoArray: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.PropInfoArray] = { { len: INT ← SunRPC.GetInt32[h]; res ← NEW[TabPostOffice.SeqType1Object[len]]; FOR i: INT IN [0..len) DO res[i] ← GetPropInfo[h]; ENDLOOP; }; }; PutPropInfoArray: PUBLIC PROC[h: Handle, in: TabPostOffice.PropInfoArray] = { SunRPC.PutInt32[h, in.size]; FOR i: INT IN [0..in.size) DO PutPropInfo[h, in[i]]; ENDLOOP; }; GetMsgID: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgID] = { res ← SunRPC.GetInt32[h]; }; PutMsgID: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgID] = { SunRPC.PutInt32[h, in]; }; GetPriority: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Priority] = { res ← SunRPC.GetInt32[h]; }; PutPriority: PUBLIC PROC[h: Handle, in: TabPostOffice.Priority] = { SunRPC.PutInt32[h, in]; }; GetFilter: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Filter] = { res ← SunRPC.GetRope[h]; }; PutFilter: PUBLIC PROC[h: Handle, in: TabPostOffice.Filter] = { SunRPC.PutRope[h, in]; }; GetFilterSet: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.FilterSet] = { { len: INT ← SunRPC.GetInt32[h]; res ← NEW[TabPostOffice.SeqType2Object[len]]; FOR i: INT IN [0..len) DO res[i] ← GetFilter[h]; ENDLOOP; }; }; PutFilterSet: PUBLIC PROC[h: Handle, in: TabPostOffice.FilterSet] = { SunRPC.PutInt32[h, in.size]; FOR i: INT IN [0..in.size) DO PutFilter[h, in[i]]; ENDLOOP; }; GetFolder: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Folder] = { res ← SunRPC.GetRope[h]; }; PutFolder: PUBLIC PROC[h: Handle, in: TabPostOffice.Folder] = { SunRPC.PutRope[h, in]; }; GetFolders: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Folders] = { { len: INT ← SunRPC.GetInt32[h]; res ← NEW[TabPostOffice.SeqType3Object[len]]; FOR i: INT IN [0..len) DO res[i] ← GetFolder[h]; ENDLOOP; }; }; PutFolders: PUBLIC PROC[h: Handle, in: TabPostOffice.Folders] = { SunRPC.PutInt32[h, in.size]; FOR i: INT IN [0..in.size) DO PutFolder[h, in[i]]; ENDLOOP; }; GetTime: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Time] = { res ← SunRPC.GetInt32[h]; }; PutTime: PUBLIC PROC[h: Handle, in: TabPostOffice.Time] = { SunRPC.PutInt32[h, in]; }; StatusNames: PUBLIC ARRAY TabPostOffice.Status OF ROPE ← [ "New", "Unread", "Read" ]; GetStatus: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Status] = { res ← VAL[SunRPC.GetInt32[h]]; }; PutStatus: PUBLIC PROC[h: Handle, in: TabPostOffice.Status] = { SunRPC.PutInt32[h, ORD[in]]; }; WhencesNames: PUBLIC ARRAY TabPostOffice.Whences OF ROPE ← [ "BOM", "BOB" ]; GetWhences: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Whences] = { res ← VAL[SunRPC.GetInt32[h]]; }; PutWhences: PUBLIC PROC[h: Handle, in: TabPostOffice.Whences] = { SunRPC.PutInt32[h, ORD[in]]; }; GetSessionInfo: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.SessionInfo] = { res.numselects ← SunRPC.GetInt32[h]; res.plist ← GetPropInfoArray[h]; res.numorders ← SunRPC.GetInt32[h]; res.olist ← GetPropertyArray[h]; }; PutSessionInfo: PUBLIC PROC[h: Handle, in: TabPostOffice.SessionInfo] = { SunRPC.PutInt32[h, in.numselects]; PutPropInfoArray[h, in.plist]; SunRPC.PutInt32[h, in.numorders]; PutPropertyArray[h, in.olist]; }; GetSessionResult: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.SessionResult] = { res.total ← SunRPC.GetInt32[h]; res.new ← SunRPC.GetInt32[h]; res.unread ← SunRPC.GetInt32[h]; res.loPri ← GetPriority[h]; res.hiPri ← GetPriority[h]; res.lastModifyTime ← GetTime[h]; res.lastAccessTime ← GetTime[h]; res.e ← GetErrorInfo[h]; }; PutSessionResult: PUBLIC PROC[h: Handle, in: TabPostOffice.SessionResult] = { SunRPC.PutInt32[h, in.total]; SunRPC.PutInt32[h, in.new]; SunRPC.PutInt32[h, in.unread]; PutPriority[h, in.loPri]; PutPriority[h, in.hiPri]; PutTime[h, in.lastModifyTime]; PutTime[h, in.lastAccessTime]; PutErrorInfo[h, in.e]; }; GetMsgIDRange: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgIDRange] = { res.beginId ← GetMsgID[h]; res.endId ← GetMsgID[h]; }; PutMsgIDRange: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgIDRange] = { PutMsgID[h, in.beginId]; PutMsgID[h, in.endId]; }; GetMsgInfo: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgInfo] = { res.msgId ← GetMsgID[h]; res.from ← SunRPC.GetRope[h]; res.to ← SunRPC.GetRope[h]; res.cc ← SunRPC.GetRope[h]; res.date ← SunRPC.GetRope[h]; res.subject ← SunRPC.GetRope[h]; res.priority ← GetPriority[h]; res.filters ← GetFilterSet[h]; res.status ← GetStatus[h]; res.bodyLength ← SunRPC.GetInt32[h]; res.bodyLines ← SunRPC.GetInt32[h]; }; PutMsgInfo: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgInfo] = { PutMsgID[h, in.msgId]; SunRPC.PutRope[h, in.from]; SunRPC.PutRope[h, in.to]; SunRPC.PutRope[h, in.cc]; SunRPC.PutRope[h, in.date]; SunRPC.PutRope[h, in.subject]; PutPriority[h, in.priority]; PutFilterSet[h, in.filters]; PutStatus[h, in.status]; SunRPC.PutInt32[h, in.bodyLength]; SunRPC.PutInt32[h, in.bodyLines]; }; GetMsgInfos: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgInfos] = { { len: INT ← SunRPC.GetInt32[h]; res ← NEW[TabPostOffice.SeqType4Object[len]]; FOR i: INT IN [0..len) DO res[i] ← GetMsgInfo[h]; ENDLOOP; }; }; PutMsgInfos: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgInfos] = { SunRPC.PutInt32[h, in.size]; FOR i: INT IN [0..in.size) DO PutMsgInfo[h, in[i]]; ENDLOOP; }; GetMsgInfoResult: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgInfoResult] = { res.info ← GetMsgInfos[h]; res.e ← GetErrorInfo[h]; }; PutMsgInfoResult: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgInfoResult] = { PutMsgInfos[h, in.info]; PutErrorInfo[h, in.e]; }; GetMsgTextInfo: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgTextInfo] = { res.msgId ← GetMsgID[h]; res.beginByte ← SunRPC.GetInt32[h]; res.numBytes ← SunRPC.GetInt32[h]; res.whence ← GetWhences[h]; }; PutMsgTextInfo: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgTextInfo] = { PutMsgID[h, in.msgId]; SunRPC.PutInt32[h, in.beginByte]; SunRPC.PutInt32[h, in.numBytes]; PutWhences[h, in.whence]; }; GetMsgTextResult: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.MsgTextResult] = { res.body ← SunRPC.GetRope[h]; res.e ← GetErrorInfo[h]; }; PutMsgTextResult: PUBLIC PROC[h: Handle, in: TabPostOffice.MsgTextResult] = { SunRPC.PutRope[h, in.body]; PutErrorInfo[h, in.e]; }; GetNewMailResult: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.NewMailResult] = { res.newMail ← SunRPC.GetInt32[h] # 0; res.e ← GetErrorInfo[h]; }; PutNewMailResult: PUBLIC PROC[h: Handle, in: TabPostOffice.NewMailResult] = { SunRPC.PutInt32[h, IF in.newMail THEN 1 ELSE 0]; PutErrorInfo[h, in.e]; }; GetFoldersResult: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.FoldersResult] = { res.folders ← GetFolders[h]; res.numFolders ← SunRPC.GetInt32[h]; res.e ← GetErrorInfo[h]; }; PutFoldersResult: PUBLIC PROC[h: Handle, in: TabPostOffice.FoldersResult] = { PutFolders[h, in.folders]; SunRPC.PutInt32[h, in.numFolders]; PutErrorInfo[h, in.e]; }; GetMark: PUBLIC PROC[h: Handle] RETURNS [res: TabPostOffice.Mark] = { res.msgId ← GetMsgID[h]; res.markID ← SunRPC.GetRope[h]; res.markMsg ← SunRPC.GetRope[h]; }; PutMark: PUBLIC PROC[h: Handle, in: TabPostOffice.Mark] = { PutMsgID[h, in.msgId]; SunRPC.PutRope[h, in.markID]; SunRPC.PutRope[h, in.markMsg]; }; END.