|
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 Exclusive_Generic_List, seg_042f41, seg_043bc5, seg_0449b9, seg_044bbb
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧ └─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io; use Text_Io; package body Exclusive_Generic_List is procedure Put (List : in out Object; Item : in Element; Ok : out Boolean) is An_Iterator : Iterator; The_Same : Boolean := False; begin Init (An_Iterator, List); while not Done (An_Iterator) and not The_Same loop The_Same := Get_Key (Value (An_Iterator)) = Get_Key (Item); Next (An_Iterator); end loop; if not The_Same then List.Object := Exclusive_List.Make (X => Item, L => List.Object); end if; Ok := not The_Same; end Put; procedure Put (List : in out Object; Item : in Element) is An_Iterator : Iterator; Temporary_List : Object; The_Same : Boolean := False; begin if not Belong (List, Get_Key (Item)) then List.Object := Exclusive_List.Make (X => Item, L => List.Object); else Init (An_Iterator, List); while not Done (An_Iterator) loop Temporary_List.Object := Exclusive_List.Make (X => Value (An_Iterator), L => Temporary_List.Object); if Get_Key (Value (An_Iterator)) = Get_Key (Item) then Exclusive_List.Set_First (Temporary_List.Object, Item); end if; Next (An_Iterator); end loop; Free (List); Copy (Temporary_List, List); Free (Temporary_List); end if; end Put; procedure Get (List : in Object; Item : out Element; Key : in String; Ok : out Boolean) is An_Iterator : Iterator; The_Same : Boolean := False; begin Init (An_Iterator, List); while not Done (An_Iterator) and not The_Same loop Item := Value (An_Iterator); The_Same := Get_Key (Value (An_Iterator)) = Key; Next (An_Iterator); end loop; if The_Same then Ok := True; else Ok := False; Item := Null_Element; end if; end Get; procedure Copy (Input_List : in Object; Output_List : in out Object) is An_Iterator : Iterator; begin Init (An_Iterator, Input_List); while not Done (An_Iterator) loop Output_List.Object := Exclusive_List.Make (Value (An_Iterator), Output_List.Object); Next (An_Iterator); end loop; end Copy; procedure Free (List : in out Object) is begin Exclusive_List.Free (List.Object); end Free; procedure Show (List : in Object) is An_Iterator : Iterator; begin Init (An_Iterator, List); while not Done (An_Iterator) loop Show_Element (Item => Value (An_Iterator)); Next (An_Iterator); end loop; New_Line; end Show; function Is_Empty (List : in Object) return Boolean is begin return Exclusive_List.Is_Empty (List.Object); end Is_Empty; function Belong (List : in Object; Key : in String) return Boolean is Item : Element; Ok : Boolean; begin Get (List, Item, Key, Ok); return Ok; end Belong; function Length (List : in Object) return Natural is begin return Exclusive_List.Length (List.Object); end Length; procedure Init (An_Iterator : out Iterator; List : in Object) is begin Exclusive_List.Init (Iter => An_Iterator.Object, L => List.Object); end Init; procedure Next (An_Iterator : in out Iterator) is begin Exclusive_List.Next (Iter => An_Iterator.Object); end Next; function Value (An_Iterator : in Iterator) return Element is begin return Exclusive_List.Value (Iter => An_Iterator.Object); end Value; function Done (An_Iterator : in Iterator) return Boolean is begin return Exclusive_List.Done (Iter => An_Iterator.Object); end Done; end Exclusive_Generic_List;
nblk1=6 nid=0 hdr6=c [0x00] rec0=21 rec1=00 rec2=01 rec3=02a [0x01] rec0=12 rec1=00 rec2=05 rec3=040 [0x02] rec0=22 rec1=00 rec2=04 rec3=032 [0x03] rec0=06 rec1=00 rec2=02 rec3=03a [0x04] rec0=29 rec1=00 rec2=06 rec3=00c [0x05] rec0=13 rec1=00 rec2=03 rec3=001 tail 0x21743c0548634452c2a15 0x42a00088462060003