|
|
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: 8192 (0x2000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Order_List, seg_047d41
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Text_Io, Exclusive_Generic_List, Group_Identifier_Array;
package body Order_List is
package O_List is new Exclusive_Generic_List
(Element => Order.Object,
Null_Element => Order.Null_Object,
Show_Element => Order.Show,
Get_Key => Order.Image);
The_List : O_List.Object := O_List.Null_Object;
The_Iterator : O_List.Iterator;
procedure Put (An_Order : in Order.Object; Ok : out Boolean) is
begin
O_List.Put (The_List, An_Order, Ok);
end Put;
function Contains_Complement (Complement : in String) return Boolean is
Found : Boolean;
An_Iterator : O_List.Iterator;
begin
O_List.Init (An_Iterator, The_List);
if not O_List.Done (An_Iterator) then
Found := True;
while not O_List.Done (An_Iterator) loop
Found := Found and Order.Contains_Complement
(O_List.Value (An_Iterator), Complement);
O_List.Next (An_Iterator);
end loop;
else
Found := False;
end if;
return Found;
end Contains_Complement;
procedure Make_Redirection (Group : in String;
Position : in Positive;
Ok : in out Boolean) is
Temporary_List : O_List.Object;
An_Order : Order.Object;
An_Iterator : O_List.Iterator;
begin
if Contains_Complement (Group) then
O_List.Init (An_Iterator, The_List);
while not O_List.Done (An_Iterator) loop
An_Order := O_List.Value (An_Iterator);
Order.Make_Redirection (An_Order, Group, Position);
O_List.Put (Temporary_List, An_Order);
O_List.Next (An_Iterator);
end loop; O_List.Free (The_List);
O_List.Copy (Temporary_List, The_List);
else
Ok := False;
end if;
end Make_Redirection;
procedure Free is
An_Order : Order.Object;
An_Iterator : O_List.Iterator;
begin
O_List.Free (The_List);
end Free;
procedure Show is
begin
Text_Io.Put_Line ("Order List :");
O_List.Show (The_List);
end Show;
function First_Order return Order.Object is
begin
Init;
return Value;
end First_Order;
function Complement_Position (Complement : in String) return Natural is
An_Iterator : O_List.Iterator;
begin
O_List.Init (An_Iterator, The_List);
return Order.Complement_Position
(O_List.Value (An_Iterator), Complement);
end Complement_Position;
procedure Init is
begin
O_List.Init (The_Iterator, The_List);
end Init;
procedure Next is
begin
O_List.Next (The_Iterator);
end Next;
function Value return Order.Object is
begin
return O_List.Value (The_Iterator);
end Value;
function Done return Boolean is
begin
return O_List.Done (The_Iterator);
end Done;
end Order_List;
nblk1=7
nid=5
hdr6=8
[0x00] rec0=1e rec1=00 rec2=01 rec3=046
[0x01] rec0=1c rec1=00 rec2=06 rec3=002
[0x02] rec0=2c rec1=00 rec2=07 rec3=03a
[0x03] rec0=16 rec1=00 rec2=03 rec3=000
[0x04] rec0=2f rec1=00 rec2=03 rec3=012
[0x05] rec0=01 rec1=00 rec2=04 rec3=000
[0x06] rec0=00 rec1=ec rec2=00 rec3=031
tail 0x2174b9d908657576f59f8 0x42a00088462060003
Free Block Chain:
0x5: 0000 00 04 00 3a 80 0f 28 54 68 65 5f 49 74 65 72 61 ┆ : (The_Itera┆
0x4: 0000 00 02 00 0c 80 06 5f 4c 69 73 74 3b 06 00 00 00 ┆ _List; ┆
0x2: 0000 00 00 03 8b 80 15 64 65 72 2e 49 6e 64 65 78 27 ┆ der.Index'┆