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

⟦00753e319⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Add_Object_Hyper_Table, seg_0045a5

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 Profile;
with Directory_Miscellaneous;
with Table_Formatter;
with Directory_Renames;
use Directory_Renames;

procedure Add_Object_Hyper_Table
             (Units       : in out Directory_Tools.Object.Iterator;
              To_Document : in out Abstract_Document.Handle;
              Response    :        String := "<PROFILE>") is

    function Copy (Obj : Object.Handle) return Object.Handle
        renames Directory_Miscellaneous.Copy;

    Old_Profile : Profile.Response_Profile := Profile.Get;
    New_Profile : Profile.Response_Profile;

    Rows : array (Columns) of Integer;

    package Table is new Table_Formatter (Rows'Length);

    Fields : Table.Field_List (1 .. Columns'Pos (Columns'Last) + 1);

    Bool   : Boolean := True;
    Status : Object.Error_Code;

    A_Unit : Object.Handle;


    procedure Add_Item (The_Object : Object.Handle) is
        Linkage_Object  : Object.Handle;
        Linkage_Objects : Object.Iterator := Object.Create;
    begin  
        if Include_Object (The_Object) then
            for C in Columns loop

                Linkage (For_Column   => C,
                         For_Object   => The_Object,
                         Linkage      => Linkage_Object,
                         Linkage_List => Linkage_Objects);

                Table.Item (Image (C, The_Object),
                            Object_Linkage      => Linkage_Object,
                            Object_Linkage_List => Linkage_Objects,
                            Explanation         => Explanation (C, The_Object));
            end loop;
        end if;

    end Add_Item;

    procedure Op (Depth      :        Positive;
                  State      : in out Boolean;
                  The_Object :        Object.Handle;
                  Status     : out    Object.Error_Code;
                  Control    : in out Traversal.Control_Enumeration) is

        My_Object : Object.Handle := Copy (The_Object);

    begin
        Add_Item (My_Object);

        Status := Object.Value (Object.Successful, "");

        if Continue_Traversal (My_Object) then
            Control := Traversal.Continue;
        else
            Control := Traversal.Skip_Children;
        end if;
    end Op;

    procedure Traverse is new Directory_Tools.Traversal.Recursion (Boolean, Op);

begin
    New_Profile := Profile.Value (Response);
    Profile.Set (New_Profile);

    for C in Columns loop
        Fields (Columns'Pos (C) + 1) := Columns'Pos (C) + 1;
        Table.Header (Columns'Image (C), Is_Integer => Is_Integer_Valued (C));
    end loop;

    while not Object.Done (Units) loop

        A_Unit := Object.Value (Units);

        Add_Item (A_Unit);

        Traverse (Bool, A_Unit, Status, Worlds => True);

        Object.Next (Units);
    end loop;

    Table.Sort (Fields);
    Table.Display (To_Document, Table_Title);

    Profile.Set (Old_Profile);

end Add_Object_Hyper_Table;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=21 rec1=00 rec2=01 rec3=05c
        [0x01] rec0=00 rec1=00 rec2=05 rec3=006
        [0x02] rec0=19 rec1=00 rec2=02 rec3=060
        [0x03] rec0=27 rec1=00 rec2=03 rec3=02e
        [0x04] rec0=03 rec1=00 rec2=04 rec3=000
    tail 0x217002134815c6527ac60 0x42a00088462061e03