[
Back ]
-- ail.rpd
-- michael chen
-- august 12, 1996
-- abstract implementation layer architecture
type ail_interface is interface
service COL : dual Concepts_Of_Operation_Layer;
service PB : Pass_Back;
requires
function Latency(A : Action_Type; T : Integer) return integer;
end ail_interface;
architecture ail_arch() for ail_interface
is
Clients : array [integer] of Client is (1..Num_Clients, default is
ClientArch());
S : Server is ServerArch();
connect
-- The following service connections had to be changed to event
-- connections due to a problem Raptor has with basic connections.
-- COL to C.COL;
(?I in Integer) COL.IDA.start_belvedere(?I) ||>
Clients[?I].COL.IDA.start_belvedere();
(?I in Integer) COL.IDA.new_inquiry_diagram(?I) ||>
Clients[?I].COL.IDA.new_inquiry_diagram();
(?I in Integer) COL.IDA.list_inquiry_diagram(?I) ||>
Clients[?I].COL.IDA.list_inquiry_diagram();
(?D in Diagram_ID, ?I in Integer) COL.IDA.open_inquiry_diagram(?D, ?I) ||>
Clients[?I].COL.IDA.open_inquiry_diagram(?D);
(?I in Integer) COL.IDA.add_node(?I) ||>
Clients[?I].COL.IDA.add_node();
(?I in Integer) COL.IDA.add_edge(?I) ||>
Clients[?I].COL.IDA.add_edge();
(?I in Integer) COL.IDA.update_node(?I) ||>
Clients[?I].COL.IDA.update_node();
(?I in Integer) COL.IDA.move_node(?I) ||>
Clients[?I].COL.IDA.move_node();
(?I in Integer) COL.IDA.delete_node(?I) ||>
Clients[?I].COL.IDA.delete_node();
(?I in Integer) COL.IDA.delete_edge(?I) ||>
Clients[?I].COL.IDA.delete_edge();
(?I in Integer) COL.IDA.exit_diagram(?I) ||>
Clients[?I].COL.IDA.exit_diagram();
(?I in Integer) COL.I_S.start_netscape(?I) ||>
Clients[?I].COL.I_S.start_netscape();
(?I in Integer) COL.I_S.get_URL(?I) ||>
Clients[?I].COL.I_S.get_URL();
(?I in Integer) COL.AS.request_advice(?I) ||>
Clients[?I].COL.AS.request_advice();
--
(?I in Integer) COL.IDA.reference_this(?I) ||>
Clients[?I].COL.IDA.reference_this();
-- document request connections
(?I in Integer) S.HTMLPage(?I) ||> Clients[?I].In_HTMLPage;
-- help request connections
(?I in Integer) S.Advice(?I) ||> Clients[?I].In_Advice;
-- server response to client connections
(?R in Response_Type, ?I in Integer) S.Response(?R, ?I) ||>
Clients[?I].In_Response(?R);
(?A in Action_Type, ?D in Diagram_ID, ?I in Integer)
S.Notify(?A, ?D, ?I) ||> Clients[?I].Notify(?A, ?D);
-- from clients out of ail
for I : Integer in 1..Num_Clients generate
Clients[I].WebStartup ||> PB.WebStartup(I);
Clients[I].JavaStartup ||> PB.JavaStartup(I);
(?U in URL_Type, ?A in Action_Type, ?D in Diagram_ID)
Clients[I].Server_Request(?U, ?A, ?D) ||>
S.Server_Request(?U, ?A, ?D, I);
Clients[I].HTMLPage ||> PB.HTMLPage(I);
Clients[I].Advice ||> PB.Advice(I);
(?R in Response_Type) Clients[I].Response(?R) ||>
PB.Response(?R, I);
end generate;
(?A in Action_Type, ?T in Integer) S.Latency(?A, ?T) to Latency(?A, ?T);
end ail_arch;
[
Back ]