[
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 ]