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

⟦15fead32d⟧ Ada Source

    Length: 4096 (0x1000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Element_Usage_Table, seg_0046c6

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



package body Element_Usage_Table is
    procedure Initialize (The_Table : in out Table) is
    begin
        Element_Map.Initialize (Element_Map.Map (The_Table));
    end Initialize;

    procedure Add (The_Element :        Element;  
                   To          : in out Table) is
    begin
        Element_Map.Define (The_Map        => Element_Map.Map (To),
                            D              => The_Element,
                            R              => False,
                            Trap_Multiples => False);
    end Add;

    procedure Reset (The_Table : in out Table) is
        Iter : Element_Map.Iterator;
    begin
        Element_Map.Init (Iter, Element_Map.Map (The_Table));
        while not Element_Map.Done (Iter) loop

            Element_Map.Define (The_Map        => Element_Map.Map (The_Table),
                                D              => Element_Map.Value (Iter),
                                R              => False,
                                Trap_Multiples => False);

            Element_Map.Next (Iter);
        end loop;
    end Reset;

    procedure Mark_As_Used (An_Element : Element; In_Table : in out Table) is
    begin
        Element_Map.Define (The_Map        => Element_Map.Map (In_Table),
                            D              => An_Element,
                            R              => True,
                            Trap_Multiples => False);
    exception
        when Element_Map.Undefined =>
            raise Element_Not_Found;
    end Mark_As_Used;

    function Is_Used (An_Element : Element;  
                      In_Table   : Table) return Boolean is
    begin
        return Element_Map.Eval
                  (The_Map => Element_Map.Map (In_Table), D => An_Element);
    exception
        when Element_Map.Undefined =>
            raise Element_Not_Found;
    end Is_Used;

    function All_Used (In_Table : Table) return Boolean is
        Iter : Element_Map.Iterator;
    begin
        Element_Map.Init (Iter, Element_Map.Map (In_Table));
        while not Element_Map.Done (Iter) loop

            if not Element_Map.Eval (The_Map => Element_Map.Map (In_Table),
                                     D       => Element_Map.Value (Iter)) then
                return False;
            end if;

            Element_Map.Next (Iter);
        end loop;

        return True;
    end All_Used;

    function Done (Iter : Iterator) return Boolean is
    begin
        return Element_Map.Done (Element_Map.Iterator (Iter));
    end Done;

    function Value (Iter : Iterator) return Element is
    begin
        return Element_Map.Value (Element_Map.Iterator (Iter));
    end Value;

    procedure Next (Iter : in out Iterator) is
    begin
        Element_Map.Next (Element_Map.Iterator (Iter));
    end Next;
end Element_Usage_Table;

E3 Meta Data

    nblk1=3
    nid=0
    hdr6=6
        [0x00] rec0=1a rec1=00 rec2=01 rec3=008
        [0x01] rec0=1c rec1=00 rec2=02 rec3=00e
        [0x02] rec0=1f rec1=00 rec2=03 rec3=000
    tail 0x217002a10815c670581c1 0x42a00088462061e03