|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 21504 (0x5400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, seg_05436d, separate Service_Manager
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
separate (Service_Manager)
task body Manager_Task is
begin
Text_Io.Put_Line ("Demmarrage de la tache Service Manager.");
loop
select
accept Add_Service (Service_Name : in Orb_Defs.Name;
Service_Connection : in Orb_Defs.Connection_Id;
Service_Ip : in Orb_Defs.Host_Id;
Service_Socket : in Orb_Defs.Socket_Id;
Service_Declaration : in Orb_Defs.Message;
Add : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Text_Io.Put_Line ("Add Service a ete active.");
Agent_Toolbox.Add_Agent
(Agent_Name => Service_Name,
Agent_Number => Agent_Number,
Agent_Connection => Service_Connection,
Agent_Ip => Service_Ip,
Agent_Socket => Service_Socket,
Error => Error_1);
Text_Io.Put_Line ("L'agent a ete rajoute.");
Error_2 := Service_Table.Subscribe_Service
(The_Subscribe_Data => Service_Declaration,
Agent_Reference => Agent_Number);
Text_Io.Put_Line
("Les services ont ete rajoute au tableau");
Add := not Error_1 and Error_2;
end;
end Add_Service;
or
accept Remove_Service (Service_Ip_Adress : in Orb_Defs.Host_Id;
Service_Socket : in Orb_Defs.Socket_Id;
Destruct : out Boolean) do
declare
Agent_Connection : Orb_Defs.Connection_Id;
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Text_Io.Put_Line ("Remove Service");
Agent_Toolbox.Find_Agent
(Agent_Connection => Agent_Connection,
Agent_Ip => Service_Ip_Adress,
Agent_Socket => Service_Socket,
Agent_Number => Agent_Number,
Error => Error_1);
if not Error_1 then
Agent_Toolbox.Remove_Agent
(Agent_Ip => Service_Ip_Adress,
Agent_Socket => Service_Socket,
Error => Error_2);
if not Error_1 and not Error_2 then
Error_2 := Service_Table.Remove_Service
(Agent_Reference => Agent_Number);
else
Error_2 := False;
end if;
end if;
Destruct := not Error_1 and Error_2;
end;
end Remove_Service;
or
accept Ask_Service (Ask_Class : in Orb_Defs.Class;
Ask_Fct : in Orb_Defs.Funct;
Service_Connection : out Orb_Defs.Connection_Id;
Service_Ip : out Orb_Defs.Host_Id;
Service_Socket : out Orb_Defs.Socket_Id;
Service_Release : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean;
begin
Service_Table.Ask_Service (Service_Class => Ask_Class,
Service_Fct => Ask_Fct,
Agent_Reference => Agent_Number,
Error => Error_1);
Service_Connection := Agent_Toolbox.Get_Connection
(Agent_Number => Agent_Number);
Service_Ip := Agent_Toolbox.Get_Ip
(Agent_Number => Agent_Number);
Service_Socket := Agent_Toolbox.Get_Socket (Agent_Number);
Service_Release := not Error_1;
end;
end Ask_Service;
or
accept Exist_Service (Ask_Class : in Orb_Defs.Class;
Ask_Fct : in Orb_Defs.Funct;
Service_Connection : out
Orb_Defs.Connection_Id;
Service_Ip : in Orb_Defs.Host_Id;
Service_Socket : in Orb_Defs.Socket_Id;
Service_Release : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error : Boolean;
begin
Agent_Toolbox.Find_Agent
(Agent_Connection => Service_Connection,
Agent_Ip => Service_Ip,
Agent_Socket => Service_Socket,
Agent_Number => Agent_Number,
Error => Error);
-- On pourrait tester la classe si j ai le temps
Service_Release := not Error;
end;
end Exist_Service;
or
accept Add_Filter (Filter_Name : in Orb_Defs.Name;
Filter_Connection : in Orb_Defs.Connection_Id;
Filter_Ip_Adress : in Orb_Defs.Host_Id;
Filter_Socket : in Orb_Defs.Socket_Id;
Filter_Declaration : in Orb_Defs.Message;
Add : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Agent_Toolbox.Add_Agent
(Agent_Name => Filter_Name,
Agent_Number => Agent_Number,
Agent_Connection => Filter_Connection,
Agent_Ip => Filter_Ip_Adress,
Agent_Socket => Filter_Socket,
Error => Error_1);
Error_2 := Filter_Table.Subscribe_Service
(The_Subscribe_Data => Filter_Declaration,
Agent_Reference => Agent_Number);
Add := not Error_1 and Error_2;
end;
end Add_Filter;
or
accept Remove_Filter (Agent_Ip_Adress : in Orb_Defs.Host_Id;
Agent_Socket : in Orb_Defs.Socket_Id;
Destruct : out Boolean) do
declare
Agent_Connection : Orb_Defs.Connection_Id;
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Agent_Toolbox.Find_Agent
(Agent_Connection => Agent_Connection,
Agent_Ip => Agent_Ip_Adress,
Agent_Socket => Agent_Socket,
Agent_Number => Agent_Number,
Error => Error_1);
if not Error_1 then
Agent_Toolbox.Remove_Agent
(Agent_Ip => Agent_Ip_Adress,
Agent_Socket => Agent_Socket,
Error => Error_2);
if not Error_1 and not Error_2 then
Error_2 := Filter_Table.Remove_Service
(Agent_Reference => Agent_Number);
else
Error_2 := False;
end if;
end if;
Destruct := not Error_1 and Error_2;
end;
end Remove_Filter;
or
accept Ask_Filter (Ask_Class : in Orb_Defs.Class;
Ask_Function : in Orb_Defs.Funct;
Filter_Connection : out Orb_Defs.Connection_Id;
Filter_Ip_Adress : out Orb_Defs.Host_Id;
Filter_Socket : out Orb_Defs.Socket_Id;
Filter_Delivered : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean;
begin
Filter_Table.Ask_Service (Service_Class => Ask_Class,
Service_Fct => Ask_Function,
Agent_Reference => Agent_Number,
Error => Error_1);
Filter_Connection := Agent_Toolbox.Get_Connection
(Agent_Number => Agent_Number);
Filter_Ip_Adress := Agent_Toolbox.Get_Ip
(Agent_Number => Agent_Number);
Filter_Socket := Agent_Toolbox.Get_Socket (Agent_Number);
Filter_Delivered := not Error_1;
end;
end Ask_Filter;
or
accept Add_Spy (Spy_Name : in Orb_Defs.Name;
Spy_Connection : in Orb_Defs.Connection_Id;
Spy_Ip_Adress : in Orb_Defs.Host_Id;
Spy_Socket : in Orb_Defs.Socket_Id;
Spy_Declaration : in Orb_Defs.Message;
Add : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Agent_Toolbox.Add_Agent (Agent_Name => Spy_Name,
Agent_Number => Agent_Number,
Agent_Connection => Spy_Connection,
Agent_Ip => Spy_Ip_Adress,
Agent_Socket => Spy_Socket,
Error => Error_1);
Error_2 := Spy_Table.Subscribe_Service
(The_Subscribe_Data => Spy_Declaration,
Agent_Reference => Agent_Number);
Add := not Error_1 and Error_2;
end;
end Add_Spy;
or
accept Remove_Spy (Spy_Ip_Adress : in Orb_Defs.Host_Id;
Spy_Socket : in Orb_Defs.Socket_Id;
Destruct : out Boolean) do
declare
Agent_Connection : Orb_Defs.Connection_Id;
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean := True;
begin
Agent_Toolbox.Find_Agent
(Agent_Connection => Agent_Connection,
Agent_Ip => Spy_Ip_Adress,
Agent_Socket => Spy_Socket,
Agent_Number => Agent_Number,
Error => Error_1);
if not Error_1 then
Agent_Toolbox.Remove_Agent (Agent_Ip => Spy_Ip_Adress,
Agent_Socket => Spy_Socket,
Error => Error_2);
if not Error_1 and not Error_2 then
Error_2 := Spy_Table.Remove_Service
(Agent_Reference => Agent_Number);
else
Error_2 := False;
end if;
end if;
Destruct := not Error_1 and Error_2;
end;
end Remove_Spy;
or
accept Ask_Spy (Ask_Class : in Orb_Defs.Class;
Ask_Function : in Orb_Defs.Funct;
Spy_Connection : out Orb_Defs.Connection_Id;
Spy_Ip_Adress : out Orb_Defs.Host_Id;
Spy_Socket : out Orb_Defs.Socket_Id;
Spy_Release : out Boolean) do
declare
Agent_Number : Service_Manager_Defs.Number_Of_Agent;
Error_1, Error_2 : Boolean;
begin
Spy_Table.Ask_Service (Service_Class => Ask_Class,
Service_Fct => Ask_Function,
Agent_Reference => Agent_Number,
Error => Error_1);
Spy_Connection := Agent_Toolbox.Get_Connection
(Agent_Number => Agent_Number);
Spy_Ip_Adress := Agent_Toolbox.Get_Ip
(Agent_Number => Agent_Number);
Spy_Socket := Agent_Toolbox.Get_Socket (Agent_Number);
Spy_Release := not Error_1;
end;
end Ask_Spy;
or
accept Ask_Agent_To_Test
(Agent_Connection : out Orb_Defs.Connection_Id;
Agent_Ip_Adress : out Orb_Defs.Host_Id;
Agent_Socket : out Orb_Defs.Socket_Id;
Error : out Boolean) do
declare
Agent_Name : Orb_Defs.Name;
begin
Agent_Toolbox.Next_Agent_To_Test
(Agent_Name => Agent_Name,
Agent_Connection => Agent_Connection,
Agent_Ip => Agent_Ip_Adress,
Agent_Socket => Agent_Socket);
Error := False;
-- Rajouter gestion d erreur
end;
end Ask_Agent_To_Test;
or
accept Set_Agent_To_Failure
(Agent_Ip : in Orb_Defs.Host_Id;
Agent_Socket : in Orb_Defs.Socket_Id) do
Agent_Toolbox.To_Failure (Agent_Ip => Agent_Ip,
Agent_Socket => Agent_Socket);
end Set_Agent_To_Failure;
or
accept Set_Agent_To_Ok (Agent_Ip : in Orb_Defs.Host_Id;
Agent_Socket : in Orb_Defs.Socket_Id) do
Agent_Toolbox.To_Ok (Agent_Ip => Agent_Ip,
Agent_Socket => Agent_Socket);
end Set_Agent_To_Ok;
or
delay 5.0;
Text_Io.Put_Line ("The Task Service Manager is a live.");
end select;
end loop;
end Manager_Task;
nblk1=14
nid=5
hdr6=24
[0x00] rec0=18 rec1=00 rec2=01 rec3=00c
[0x01] rec0=12 rec1=00 rec2=14 rec3=050
[0x02] rec0=03 rec1=00 rec2=12 rec3=028
[0x03] rec0=14 rec1=00 rec2=07 rec3=036
[0x04] rec0=13 rec1=00 rec2=02 rec3=066
[0x05] rec0=12 rec1=00 rec2=0e rec3=024
[0x06] rec0=13 rec1=00 rec2=11 rec3=020
[0x07] rec0=14 rec1=00 rec2=0c rec3=008
[0x08] rec0=04 rec1=00 rec2=09 rec3=038
[0x09] rec0=13 rec1=00 rec2=10 rec3=016
[0x0a] rec0=12 rec1=00 rec2=03 rec3=09c
[0x0b] rec0=12 rec1=00 rec2=08 rec3=054
[0x0c] rec0=11 rec1=00 rec2=0f rec3=076
[0x0d] rec0=13 rec1=00 rec2=0a rec3=042
[0x0e] rec0=14 rec1=00 rec2=0d rec3=07e
[0x0f] rec0=13 rec1=00 rec2=13 rec3=004
[0x10] rec0=14 rec1=00 rec2=0b rec3=08e
[0x11] rec0=0b rec1=00 rec2=04 rec3=000
[0x12] rec0=00 rec1=00 rec2=00 rec3=000
[0x13] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x2154cf15487b650e8118b 0x42a00088462060003
Free Block Chain:
0x5: 0000 00 06 00 ac 00 43 20 20 20 20 20 20 20 20 20 20 ┆ C ┆
0x6: 0000 00 00 03 fc 80 17 63 6b 65 74 20 3d 3e 20 53 65 ┆ cket => Se┆