[ Back ]
-- client.rpd
-- michael chen
-- august 12, 1996


type URL_Type is integer;
type RType is integer;
type PRate is integer;


-- client modules

type WebBrowser is interface
action in  Get_URL(), Ref_This(), In_HTMLPage();
       out Doc_Request(A : Action_Type), Out_HTMLPage(),
           Ref_Request(A : Action_Type);
behavior
begin
   Ref_This() ||> Ref_Request(Reference_This);;
   Get_URL() ||> Doc_Request(Document_Request);;
   In_HTMLPage() ||> Out_HTMLPage();;
end WebBrowser;


type JavaTools is interface
service COL : dual Concepts_Of_Operation_Layer;
action in  In_Advice(), In_Response(R : Response_Type), 
	   Notify(A : Action_Type; D : Diagram_ID); 
       out  Request(A : Action_Type; D : Diagram_ID), Out_Advice(), 
	    Out_Response(R : Response_Type);
behavior
   diagram_number : var integer := 0;
begin
   COL.AS.request_advice ||> Request(Request_Advice, 0);;
   COL.IDA.add_node ||> Request(Add_Node, $diagram_number);;
   COL.IDA.new_inquiry_diagram ||> Request(New_Inquiry_Diagram, 0);;
   COL.IDA.list_inquiry_diagram ||> Request(List_Inquiry_Diagram, 0);;
   (?D in Diagram_ID) COL.IDA.open_inquiry_diagram(?D) ||> 
	diagram_number := ?D;
	Request(Open_Inquiry_Diagram, ?D);;
   COL.IDA.add_edge ||> Request(Add_Edge, $diagram_number);;
   COL.IDA.update_node ||> Request(Update_Node, $diagram_number);;
   COL.IDA.move_node ||> Request(Move_Node, $diagram_number);;
   COL.IDA.delete_node ||> Request(Delete_Node, $diagram_number);;
   COL.IDA.delete_edge ||> Request(Delete_Edge, $diagram_number);;
   COL.IDA.exit_diagram ||> Request(Exit_Diagram, 0);;
   In_Advice() ||> Out_Advice();;
   (?R in Response_Type) In_Response(?R) ||> Out_Response(?R);;
end JavaTools;


type Client is interface
service COL : dual Concepts_Of_Operation_Layer;
action out  WebStartup(), JavaStartup(), 
            Server_Request(U : URL_Type; A : Action_Type; D : Diagram_ID), 
	    Response(R : Response_Type), HTMLPage(), Advice(); 
action in   In_HTMLPage(), In_Advice(),
	    In_Response(R : Response_Type), 
	    Notify(A : Action_Type; D : Diagram_ID);
end;


architecture ClientArch() for Client is
   WB : WebBrowser;
   JT : JavaTools;
connect
   COL.I_S.start_netscape() ||> WebStartup();
   COL.IDA.start_belvedere() ||> JavaStartup();
-- The following service connection had to be changed to event
-- connections due to a problem Raptor has with basic connections.
--   COL to JT.COL;
--
   COL.IDA.new_inquiry_diagram() ||>
      JT.COL.IDA.new_inquiry_diagram();
   COL.IDA.list_inquiry_diagram() ||>
      JT.COL.IDA.list_inquiry_diagram();
   (?D in Diagram_ID) COL.IDA.open_inquiry_diagram(?D) ||>
      JT.COL.IDA.open_inquiry_diagram(?D);
   COL.IDA.add_node() ||>
      JT.COL.IDA.add_node();
   COL.IDA.add_edge() ||>
      JT.COL.IDA.add_edge();
   COL.IDA.update_node() ||>
      JT.COL.IDA.update_node();
   COL.IDA.move_node() ||>
      JT.COL.IDA.move_node();
   COL.IDA.delete_node() ||>
      JT.COL.IDA.delete_node();
   COL.IDA.delete_edge() ||>
      JT.COL.IDA.delete_edge();
   COL.IDA.exit_diagram() ||>
      JT.COL.IDA.exit_diagram();
   COL.AS.request_advice() ||>
      JT.COL.AS.request_advice();
--
   COL.IDA.reference_this() ||> WB.Ref_This();
   COL.I_S.get_URL ||> WB.Get_URL();
--
   (?A in Action_Type) WB.Doc_Request(?A) ||> Server_Request(1, ?A, 0);
   (?A in Action_Type) WB.Ref_Request(?A) ||> Server_Request(2, ?A, 0);
   (?A in Action_Type, ?D in Diagram_ID) JT.Request(?A, ?D) ||> 
	Server_Request(2, ?A, ?D);
--
   In_HTMLPage() ||> WB.In_HTMLPage();
   In_Advice() ||> JT.In_Advice();
   (?R in Response_Type) In_Response(?R) ||> JT.In_Response(?R);
--
   WB.Out_HTMLPage ||> HTMLPage;
   (?R in Response_Type) JT.Out_Response(?R) ||> Response(?R);
   JT.Out_Advice() ||> Advice();
   (?A in Action_Type, ?D in Diagram_ID) Notify(?A, ?D) ||> JT.Notify(?A, ?D);
end ClientArch;



[ Back ]

© 1996 TRW Inc. All rights reserved.