% $Id: RMI.oz,v 1.3 2007/11/14 01:38:06 leavens Exp leavens $ % From CTM, section 5.3.1 \insert 'NewPortObject2.oz' declare proc {ServerProc Msg} % {Browse servergot(Msg)} case Msg of calc(X ?Y) then Y=X*X+2.0*X+2.0 end end Server = {NewPortObject2 ServerProc} proc {ClientProc Msg} % {Browse clientgot(Msg)} case Msg of work(?Y) then Y1 Y2 in {Send Server calc(10.0 Y1)} {Wait Y1} {Send Server calc(20.0 Y2)} {Wait Y2} Y=Y1+Y2 end end Client = {NewPortObject2 ClientProc} {Browse {Send Client work($)}}