-- TabPostOfficeClientImpl.mesa
-- Please do not edit this file.
-- It was generated using CedarRPCGen.
DIRECTORY
Rope,
SunRPC,
SunRPCAuth,
TabPostOfficeGetPut,
TabPostOffice;
TabPostOfficeClientImpl: CEDAR PROGRAM
IMPORTS SunRPC, TabPostOfficeGetPut
EXPORTS TabPostOffice =
BEGIN
ROPE: TYPE = Rope.ROPE;
defaultTimeout: CARDINAL ← 2000;
defaultRetries: CARDINAL ← 5;
MakeServer1Client: PUBLIC PROC [h: SunRPC.Handle,
c: SunRPCAuth.Conversation] RETURNS [TabPostOffice.Server1] ~ {
RETURN [NEW[TabPostOffice.Server1Object ← [
tpostartsession1,
tpogetmsginfo1,
tpogetmsgtext1,
tpochecknewmail1,
tpogetfolders1,
tpomarkmsg1,
tpoendsession1,
h, c, NIL]]];
};
tpostartsession1: PROC[o: TabPostOffice.Server1,
numselects: INT32,
plist: TabPostOffice.PropInfoArray,
numorders: INT32,
olist: TabPostOffice.PropertyArray]
RETURNS [res: TabPostOffice.SessionResult] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 1];
SunRPC.PutInt32[o.rpcHandle, numselects];
TabPostOfficeGetPut.PutPropInfoArray[o.rpcHandle, plist];
SunRPC.PutInt32[o.rpcHandle, numorders];
TabPostOfficeGetPut.PutPropertyArray[o.rpcHandle, olist];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetSessionResult[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpogetmsginfo1: PROC[o: TabPostOffice.Server1,
beginId: TabPostOffice.MsgID,
endId: TabPostOffice.MsgID]
RETURNS [res: TabPostOffice.MsgInfoResult] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 2];
TabPostOfficeGetPut.PutMsgID[o.rpcHandle, beginId];
TabPostOfficeGetPut.PutMsgID[o.rpcHandle, endId];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetMsgInfoResult[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpogetmsgtext1: PROC[o: TabPostOffice.Server1,
msgId: TabPostOffice.MsgID,
beginByte: INT32,
numBytes: INT32,
whence: TabPostOffice.Whences]
RETURNS [res: TabPostOffice.MsgTextResult] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 3];
TabPostOfficeGetPut.PutMsgID[o.rpcHandle, msgId];
SunRPC.PutInt32[o.rpcHandle, beginByte];
SunRPC.PutInt32[o.rpcHandle, numBytes];
TabPostOfficeGetPut.PutWhences[o.rpcHandle, whence];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetMsgTextResult[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpochecknewmail1: PROC[o: TabPostOffice.Server1]
RETURNS [res: TabPostOffice.NewMailResult] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 4];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetNewMailResult[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpogetfolders1: PROC[o: TabPostOffice.Server1]
RETURNS [res: TabPostOffice.FoldersResult] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 5];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetFoldersResult[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpomarkmsg1: PROC[o: TabPostOffice.Server1,
msgId: TabPostOffice.MsgID,
markID: ROPE,
markMsg: ROPE]
RETURNS [res: TabPostOffice.ErrorInfo] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 6];
TabPostOfficeGetPut.PutMsgID[o.rpcHandle, msgId];
SunRPC.PutRope[o.rpcHandle, markID];
SunRPC.PutRope[o.rpcHandle, markMsg];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetErrorInfo[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
tpoendsession1: PROC[o: TabPostOffice.Server1]
RETURNS [res: TabPostOffice.ErrorInfo] = {
SunRPC.StartCall[o.rpcHandle, o.rpcConversation,
TabPostOffice.Server, 1, 7];
[] ← SunRPC.SendCallAndReceiveReply[o.rpcHandle, defaultTimeout, defaultRetries];
res ← TabPostOfficeGetPut.GetErrorInfo[o.rpcHandle];
SunRPC.ReleaseReply[o.rpcHandle];
};
END.