.PS 8.0 6.0 copy "sequence.pic"; #scale = 2.0 # boxwid = 2.5; movewid = boxwid * 1.5; boxht = boxwid / 0.75 * 0.3; moveht = boxht * 1.5; spacing = boxwid / 0.75 * 0.33; awid = boxwid / 0.75 * .10; # Object definition object(X, "x:Client"); object(P, "p:Proxy"); object(CRQ, "crq:Request") object(CT, "ct:Transport"); object(CC, "cc:Coder"); object(CRS, "crs:Response"); object(S, "s:Stream"); object(ST, "st:Transport"); object(SC, "sc:Coder"); object(SRQ, "srq:Request"); object(SRS, "srs:Response") object(Y, "y:Service"); # Message exchange s_message(X,Y,"client()"); r_message(X,Y,"p = "); s_message(X,P,"method(...)"); s_message(P,P,"method_missing(:method, [...])"); c_message(P,CRQ,""); r_message(P,CRQ,"crq ="); s_message(P,CT,"send_request(crq)"); s_message(CT,CC,"encode(crq)"); r_message(CT,CC,"b ="); s_message(CT,S,"_write(b)"); r_message(CT,S,""); active(ST); s_message(ST,S,"_read()"); r_message(ST,S,"b = "); s_message(ST,SC,"decode(b)"); c_message(SC,SRQ,""); r_message(SC,SRQ,""); r_message(ST,SC,"srq = "); s_message(ST,SRQ, "srq.invoke!"); s_message(SRQ,Y, "message(...)"); r_message(SRQ,Y, "result = :ok"); c_message(SRQ,SRS,""); r_message(SRQ,SRS,""); r_message(ST,SRQ, "srs ="); delete(SRQ); s_message(ST,SC,"encode(srs)"); r_message(ST,SC,"b ="); delete(SRS); s_message(ST,S,"_write(b)"); r_message(ST,S,""); inactive(ST); s_message(CT,S,"_read()"); r_message(CT,S,"b = "); s_message(CT,CC,"decode(b)"); c_message(CC,CRS,""); r_message(CC,CRS,""); r_message(CT,CC,"crs = "); s_message(CT,CRS,"result"); r_message(CT,CRS,":ok"); delete(CRS); r_message(P,CT,":ok"); delete(CRQ); r_message(P,P,":ok"); r_message(X,P,":ok"); # Object lifeline completion complete(X); complete(P); complete(CT); complete(CC); complete(S); complete(ST); complete(SC); complete(Y); .PE