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

⟦fe6e87c2c⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body My_Set_Of_Adress, seg_055a64, seg_055a6b

Derivation

└─⟦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 String_Utilities, Bounded_String, Text_Manager;

package body My_Set_Of_Adress is

    procedure Initialize (The_Set : in out Set_Of_Adress.Set) is
    begin
        Set_Of_Adress.Initialize (S => The_Set);
    end Initialize;

    function Contains_This_Adress
                (The_Set : in Set_Of_Adress.Set;
                 This_Adress : in All_String.Adress_String_And_Apply_Number)
                return Boolean is
        I : Set_Of_Adress.Iterator;
        Temp : Element;
    begin
        Set_Of_Adress.Init (Iter => I, S => The_Set);
        while (not Set_Of_Adress.Done (Iter => I)) loop
            Temp := Set_Of_Adress.Value (I);
            if (This_Adress = Temp.Adress) then
                return True;
            end if;
            Set_Of_Adress.Next (I);
        end loop;
        return False;
    end Contains_This_Adress;

    procedure Add_To (This_Set : in out Set_Of_Adress.Set;
                      This_Adress : in All_String.
                                          Adress_String_And_Apply_Number;
                      This_Machine : Com_Defs.V_String;
                      This_Appli_Number : Com_Defs.V_String) is
        Temp : Element;
    begin
        Temp.Adress := This_Adress;
        Temp.Machine := This_Machine;
        Temp.Appli_Number := This_Appli_Number;
        Set_Of_Adress.Add (S => This_Set, X => Temp);
    end Add_To;


    procedure Delete_To (This_Set : in out Set_Of_Adress.Set;
                         This_Adress : in All_String.
                                             Adress_String_And_Apply_Number) is
        I : Set_Of_Adress.Iterator;
        Temp : Element;
        Oust : Boolean := False;
    begin
        Set_Of_Adress.Init (Iter => I, S => This_Set);
        while (not Oust and not Set_Of_Adress.Done (Iter => I)) loop
            Temp := Set_Of_Adress.Value (I);
            if (This_Adress = Temp.Adress) then
                Set_Of_Adress.Delete (S => This_Set, X => Temp);
                Oust := True;
            end if;
            Set_Of_Adress.Next (I);
        end loop;
    end Delete_To;

    procedure Extract_The_Machine
                 (This_Set : in Set_Of_Adress.Set;
                  This_Adress : in All_String.Adress_String_And_Apply_Number;
                  Answer_In : out Com_Defs.V_String) is
        I : Set_Of_Adress.Iterator;
        Temp : Element;
        Oust : Boolean := False;
    begin
        Set_Of_Adress.Init (Iter => I, S => This_Set);
        while (not Oust and not Set_Of_Adress.Done (Iter => I)) loop
            Temp := Set_Of_Adress.Value (I);
            if (This_Adress = Temp.Adress) then
                Answer_In := Temp.Machine;
                Oust := True;
            end if;
            Set_Of_Adress.Next (I);
        end loop;
    end Extract_The_Machine;

    procedure Extract_The_Appli_Number
                 (This_Set : in Set_Of_Adress.Set;
                  This_Adress : in All_String.Adress_String_And_Apply_Number;
                  Answer_In : out Com_Defs.V_String) is
        I : Set_Of_Adress.Iterator;
        Temp : Element;
        Oust : Boolean := False;
    begin
        Set_Of_Adress.Init (Iter => I, S => This_Set);
        while (not Oust and not Set_Of_Adress.Done (Iter => I)) loop
            Temp := Set_Of_Adress.Value (I);
            if (This_Adress = Temp.Adress) then
                Answer_In := Temp.Appli_Number;
                Oust := True;
            end if;  
            Set_Of_Adress.Next (I);
        end loop;
    end Extract_The_Appli_Number;

    function Is_Empty (The_Set : in Set_Of_Adress.Set) return Boolean is
    begin
        return Set_Of_Adress.Is_Empty (S => The_Set);
    end Is_Empty;

    procedure Print (The_Set : in Set_Of_Adress.Set) is
        I : Set_Of_Adress.Iterator;
        Temp : Element;

    begin
        Set_Of_Adress.Init (Iter => I, S => The_Set);
        while (not Set_Of_Adress.Done (Iter => I)) loop
            Temp := Set_Of_Adress.Value (I);
            Text_Manager.Text.Put_Line ("          adress : " & Temp.Adress);
            Text_Manager.Text.Put_Line
               ("          machine : " &
                Bounded_String.Image
                   (Bounded_String.Variable_String (Temp.Machine)));
            Text_Manager.Text.Put_Line
               ("          appli_number : " &
                Bounded_String.Image (Bounded_String.Variable_String
                                         (Temp.Appli_Number)));
            Set_Of_Adress.Next (I);
        end loop;

    end Print;



end My_Set_Of_Adress;

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=1e rec1=00 rec2=01 rec3=056
        [0x01] rec0=01 rec1=00 rec2=04 rec3=008
        [0x02] rec0=17 rec1=00 rec2=05 rec3=04a
        [0x03] rec0=1c rec1=00 rec2=02 rec3=006
        [0x04] rec0=1b rec1=00 rec2=03 rec3=050
        [0x05] rec0=14 rec1=00 rec2=06 rec3=000
    tail 0x217608fbc87bf59d5f930 0x42a00088462060003