|
|
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: 7168 (0x1c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Agent_Nb_Generator, seg_057ec0, seg_058270
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
package body Agent_Nb_Generator is
procedure Create_Agent_Nb_Generator
(The_Agent_Nb_Generator : out T_Agent_Nb_Generator) is
begin
Initialize (The_Agent_Nb_Generator);
end Create_Agent_Nb_Generator;
procedure Get_Agent_Nb
(The_Object : in Com_Chanel.Object;
The_Agent_Nb_Generator : in out T_Agent_Nb_Generator;
The_Result : out Agent_Nb.T_Agent_Nb) is
Counter : Natural := 1;
The_Register, One_Register : Register.T_Register;
The_Iter : Register_Set.Iterator;
Result : Boolean := False;
begin
if not (Is_Empty (The_Agent_Nb_Generator)) then
loop
exit when Result = True;
Init (The_Iter, The_Agent_Nb_Generator);
loop
if not (Register_Set.Done (The_Iter)) then
The_Register := Register_Set.Value (The_Iter); end if;
exit when
Register_Set.Done (The_Iter) or
Agent_Nb.Image
(Register.Get_Agent_Nb (The_Register)) = Counter;
Register_Set.Next (The_Iter);
end loop;
if Register_Set.Done (The_Iter) then
Result := True;
Register.Set_Agent_Nb (One_Register,
Agent_Nb.Value (Counter));
Register.Set_The_Object (One_Register, The_Object);
Add (The_Agent_Nb_Generator, One_Register);
else
Counter := Counter + 1;
end if;
end loop;
else
Register.Set_Agent_Nb (One_Register, Agent_Nb.Value (Counter));
Register.Set_The_Object (One_Register, The_Object);
Add (The_Agent_Nb_Generator, One_Register);
end if;
The_Result := Register.Get_Agent_Nb (One_Register);
end Get_Agent_Nb;
procedure Get_Object (The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
The_Agent_Nb_Generator : in out T_Agent_Nb_Generator;
The_Result : out Com_Chanel.Object) is
The_Register : Register.T_Register;
The_Iter : Register_Set.Iterator;
begin
Init (The_Iter, The_Agent_Nb_Generator);
loop
The_Register := Register_Set.Value (The_Iter);
exit when Register_Set.Done (The_Iter) or
(Agent_Nb.Image (Register.Get_Agent_Nb
(The_Register)) =
Agent_Nb.Image (The_Agent_Nb));
Register_Set.Next (The_Iter);
end loop;
if Register_Set.Done (The_Iter) then
The_Result := Com_Chanel.Null_Object;
else
The_Result := Register.Get_The_Object (The_Register);
end if;
end Get_Object;
procedure Delete_One_Agent
(The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
The_Agent_Nb_Generator : in out T_Agent_Nb_Generator) is
The_Iter : Register_Set.Iterator;
begin
Init (The_Iter, The_Agent_Nb_Generator);
loop
exit when Register_Set.Done (The_Iter) or
(Agent_Nb.Image (Register.Get_Agent_Nb
(Register_Set.Value (The_Iter))) =
Agent_Nb.Image (The_Agent_Nb));
Register_Set.Next (The_Iter);
end loop;
if not (Register_Set.Done (The_Iter)) then
Delete (The_Agent_Nb_Generator, Register_Set.Value (The_Iter));
end if;
end Delete_One_Agent;
end Agent_Nb_Generator;
nblk1=6
nid=6
hdr6=8
[0x00] rec0=1e rec1=00 rec2=01 rec3=002
[0x01] rec0=15 rec1=00 rec2=03 rec3=064
[0x02] rec0=19 rec1=00 rec2=05 rec3=034
[0x03] rec0=18 rec1=00 rec2=02 rec3=000
[0x04] rec0=1e rec1=00 rec2=03 rec3=008
[0x05] rec0=07 rec1=00 rec2=04 rec3=001
tail 0x217644b6687c779da4f10 0x42a00088462060003
Free Block Chain:
0x6: 0000 00 04 00 04 80 01 4f 01 02 03 04 05 06 07 08 09 ┆ O ┆
0x4: 0000 00 00 00 e3 80 18 20 20 20 20 20 20 20 20 4e 65 ┆ Ne┆