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

⟦4edc583fc⟧ Ada Source

    Length: 3072 (0xc00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Hierarchy_Generic, seg_0043eb

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



--| @SUMMARY blah blah blah
with Lists;
with Ub_Strings;
generic
    type Element is private;
    with function Are_Equal
                     (This_Element, That_Element : Element) return Boolean;
package Hierarchy_Generic is

    type Hier is private;

    function Create return Hier;

    procedure Add (This_Parent       :        Element;
                   And_This_Child    :        Element;
                   To_This_Hierarchy : in out Hier);

    procedure Mark_Element (This_Element      :        Element;
                            In_This_Hierarchy : in out Hier);

    function Element_Is_Marked
                (This_Element : Element; In_This_Hierarchy : Hier)
                return Boolean;

    --
    --  retrieving a piece
    --
    type List is array (Positive range <>) of Element;
    type Map (Size : Positive) is
        record
            Current      : Element;
            Num_Parents  : Natural := 0;
            Parents      : List (1 .. Size);
            Num_Children : Natural := 0;
            Children     : List (1 .. Size);
        end record;

    function Map_From
                (This_Element : Element; In_This_Hierarchy : Hier) return Map;


    Hierarchy_Not_Initialized : exception;
    Element_Not_Found         : exception;

private

    type Hier_Node;
    type Hier_Ptr is access Hier_Node;
    package Ptr_Lists is new Lists (Hier_Ptr);

    type Hier_Node is
        record
            Contents  : Element;
            Is_Marked : Boolean  := False;
            Parents   : Ptr_Lists.List;
            Children  : Ptr_Lists.List;
            Next      : Hier_Ptr := null;
        end record;

    type Hier is
        record
            Initialized : Boolean  := False;
            First       : Hier_Ptr := null;
            Last        : Hier_Ptr := null;
        end record;


end Hierarchy_Generic;

E3 Meta Data

    nblk1=2
    nid=0
    hdr6=4
        [0x00] rec0=22 rec1=00 rec2=01 rec3=022
        [0x01] rec0=24 rec1=00 rec2=02 rec3=000
    tail 0x21700169a815c634f12f8 0x42a00088462061e03