|
|
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: 14336 (0x3800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body General_Data_Base, seg_057ec7, seg_05826f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
package body General_Data_Base is
use Methode;
use Filter;
use Spy;
use Spy_List;
use Class;
procedure Create_General_Data_Base
(The_Data_Base : out T_General_Data_Base) is
begin
Initialize (The_Data_Base.One_Method_List);
Initialize (The_Data_Base.One_Agent_List);
Create_Agent_Nb_Generator (The_Data_Base.One_Agent_Nb_Generator);
end Create_General_Data_Base;
procedure Registration (The_Data_Base : in out T_General_Data_Base;
The_Object : in Object;
The_Agent_Nb : in out Agent_Nb.T_Agent_Nb;
The_Class : in Var_String.V_String) is
One_Agent : Agent.T_Agent;
The_Method_List_Iter : Method_Set.Iterator;
One_Method_Name : constant String := " ";
begin
Get_Agent_Nb (The_Object, The_Data_Base.One_Agent_Nb_Generator,
The_Agent_Nb);
Agent.Create_Agent (One_Agent);
Agent.Init_Agent (One_Agent, The_Agent_Nb, Value (The_Class),
Value_Method_Name (Var_String.Value
(One_Method_Name)));
if not (Agent_Set.Is_Member
(The_Data_Base.One_Agent_List, One_Agent)) then
Add (The_Data_Base.One_Agent_List, One_Agent);
end if;
end Registration;
procedure Unregistration (The_Data_Base : in out T_General_Data_Base;
The_Agent_Nb : in Agent_Nb.T_Agent_Nb) is
begin
Delete_One_Agent (The_Agent_Nb, The_Data_Base.One_Agent_Nb_Generator);
end Unregistration;
procedure Publication (The_Data_Base : in out T_General_Data_Base;
The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
The_Method_Name : in Var_String.V_String;
The_Parameter : in Var_String.V_String) is
One_Method : T_Method;
The_Method_List_Iter : Method_Set.Iterator;
begin
Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
loop
exit when Done (The_Method_List_Iter);
exit when String_Utilities.Equal
(Var_String.Image
(Image_Method_Name
(Methode.Consult_Name
(Method_Set.Value
(The_Method_List_Iter)))),
Var_String.Image
(Image_Method_Name
(Value_Method_Name (The_Method_Name))));
Next (The_Method_List_Iter);
end loop;
Create_Method (One_Method);
if not (Done (The_Method_List_Iter)) then
One_Method := Method_Set.Value (The_Method_List_Iter);
Methode.Add_Agent (One_Method, The_Agent_Nb);
Method_Set.Delete (The_Data_Base.One_Method_List,
Method_Set.Value (The_Method_List_Iter));
Method_Set.Add (The_Data_Base.One_Method_List, One_Method);
else
One_Method := Init_Method
(One_Method, Value_Method_Name (The_Method_Name),
Value_Parameter (The_Parameter), The_Agent_Nb);
Add (The_Data_Base.One_Method_List, One_Method);
end if;
end Publication;
procedure Unpublication (The_Data_Base : in out T_General_Data_Base;
The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
The_Method_Name : in Var_String.V_String) is
One_Method : T_Method;
One_Method_Name : T_Method_Name;
One_Agent : Agent.T_Agent;
One_Agent_Nb : Agent_Nb.T_Agent_Nb;
The_Method_List_Iter : Method_Set.Iterator;
The_Agent_List_Iter : Agent_Set.Iterator;
begin
Init (The_Agent_List_Iter, The_Data_Base.One_Agent_List);
Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
loop
exit when Done (The_Agent_List_Iter);
Agent.Consult_Agent_Nb (Value (The_Agent_List_Iter), One_Agent_Nb);
exit when Agent_Nb.Is_Equal (One_Agent_Nb, The_Agent_Nb);
Next (The_Agent_List_Iter);
end loop;
if not (Done (The_Agent_List_Iter)) then
One_Agent := Value (The_Agent_List_Iter);
Agent.Remove_Method
(Value_Method_Name (The_Method_Name), One_Agent);
Delete (The_Data_Base.One_Agent_List, Value (The_Agent_List_Iter));
Add (The_Data_Base.One_Agent_List, One_Agent);
end if;
loop
exit when Done (The_Method_List_Iter);
-- exit when Consult_Name (Value (The_Method_List_Iter)) =
-- Value_Method_Name (TheMethod_Name);
exit when String_Utilities.Equal
(Var_String.Image
(Image_Method_Name
(Methode.Consult_Name
(Method_Set.Value
(The_Method_List_Iter)))),
Var_String.Image
(Image_Method_Name
(Value_Method_Name (The_Method_Name))));
Next (The_Agent_List_Iter);
end loop;
if not (Done (The_Method_List_Iter)) then
One_Method := Value (The_Method_List_Iter);
Delete_Agent (One_Method, The_Agent_Nb);
Delete (The_Data_Base.One_Method_List,
Value (The_Method_List_Iter));
Add (The_Data_Base.One_Method_List, One_Method);
end if;
end Unpublication;
procedure Request (The_Data_Base : in out T_General_Data_Base;
The_Method : in Var_String.V_String;
The_Agent_Nb_Set : out Agent_Nb_Set.Set;
The_Parameter : out Var_String.V_String;
Request_Result : out Boolean) is
The_Method_List_Iter : Method_Set.Iterator;
One_Agent_Nb_Set : Agent_Nb_Set.Set;
Nothing : constant String := " ";
begin
Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
loop
exit when Done (The_Method_List_Iter);
exit when String_Utilities.Equal
(Var_String.Image
(Image_Method_Name
(Methode.Consult_Name
(Method_Set.Value
(The_Method_List_Iter)))),
Var_String.Image
(Image_Method_Name
(Value_Method_Name (The_Method))));
Next (The_Method_List_Iter);
end loop;
if not (Done (The_Method_List_Iter)) then
Request_Result := True;
The_Parameter := Image_Parameter
(Consult_Parameter (Value
(The_Method_List_Iter)));
The_Agent_Nb_Set := Consult_Agent_Set
(Value (The_Method_List_Iter));
else
--give back an empty agent nb set;
Agent_Nb_Set.Initialize (One_Agent_Nb_Set);
The_Agent_Nb_Set := One_Agent_Nb_Set;
--give back an empty parameter field
The_Parameter := Var_String.Value (Nothing);
Request_Result := False;
end if;
end Request;
procedure Get_Com_Chanel (The_Data_Base : in out T_General_Data_Base;
The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
The_Object_Result : out Com_Chanel.Object) is
begin
Agent_Nb_Generator.Get_Object
(The_Agent_Nb, The_Data_Base.One_Agent_Nb_Generator,
The_Object_Result);
end Get_Com_Chanel;
end General_Data_Base;
nblk1=d
nid=c
hdr6=16
[0x00] rec0=1e rec1=00 rec2=01 rec3=000
[0x01] rec0=17 rec1=00 rec2=0a rec3=07c
[0x02] rec0=1a rec1=00 rec2=06 rec3=048
[0x03] rec0=16 rec1=00 rec2=04 rec3=022
[0x04] rec0=14 rec1=00 rec2=02 rec3=04e
[0x05] rec0=00 rec1=00 rec2=0b rec3=002
[0x06] rec0=17 rec1=00 rec2=09 rec3=070
[0x07] rec0=00 rec1=00 rec2=07 rec3=014
[0x08] rec0=15 rec1=00 rec2=03 rec3=05c
[0x09] rec0=16 rec1=00 rec2=0d rec3=024
[0x0a] rec0=09 rec1=00 rec2=05 rec3=000
[0x0b] rec0=f1 rec1=80 rec2=00 rec3=000
[0x0c] rec0=24 rec1=00 rec2=17 rec3=2f6
tail 0x217645fb887c78867ecd2 0x42a00088462060003
Free Block Chain:
0xc: 0000 00 08 00 0e 80 0b 5f 41 67 65 6e 74 5f 4e 62 29 ┆ _Agent_Nb)┆
0x8: 0000 00 00 00 a7 80 07 5f 4f 62 6a 65 63 74 07 00 3f ┆ _Object ?┆