DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦eba5ebe98⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Order_List, seg_0484db, seg_0487fe, seg_048810

Derivation

└─⟦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⟧ 

E3 Source Code



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);
            Ok := True;
        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;

E3 Meta Data

    nblk1=7
    nid=3
    hdr6=8
        [0x00] rec0=1e rec1=00 rec2=01 rec3=046
        [0x01] rec0=1c rec1=00 rec2=06 rec3=002
        [0x02] rec0=2d rec1=00 rec2=07 rec3=006
        [0x03] rec0=16 rec1=00 rec2=05 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 0x215457ab086594446a705 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 04 01 8d 80 10 61 74 6f 72 2c 20 54 68 65 5f  ┆      ator, The_┆
  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'┆