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

⟦b6202949c⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Nos_Arbres, seg_045773, seg_04579b, seg_045801, seg_046948

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;

package body Nos_Arbres is


    function Create_Tree return Object is

    begin

        return Trees.Create;

    end Create_Tree;

    function Is_Empty (A_Tree : Object) return Boolean is
    begin
        return Trees.Is_Empty (A_Tree);
    end Is_Empty;

    function Find (An_Element : Element; A_Tree : Object) return Boolean is

    begin
        return Trees.Is_Found (An_Element, A_Tree);
    end Find;

    procedure Find (An_Element : in out Element;
                    A_Tree : Object;
                    Found : out Boolean) is


    begin

        Trees.Find (An_Element, A_Tree, Found, An_Element);
    end Find;

    function Search (An_Element : Element; A_Tree : Object) return Element is
    begin
        return Trees.Find (An_Element, A_Tree);
    end Search;


    procedure Add (An_Element : Element; A_Tree : Object) is

        Old_Element : Element;
        Found : Boolean;

    begin
        Trees.Insert_If_Not_Found (An_Element, A_Tree, Found, Old_Element);
        if Found then
            Text_Io.Put_Line ("*** WARNING ***   Element not insert : " &
                              "The element already exists.");
        end if;
    end Add;


    procedure Replace (New_Element : Element; A_Tree : Object) is

        Found : Boolean;
        Old_Element : Element;
    begin
        Trees.Replace_If_Found (New_Element, A_Tree, Found, Old_Element);
    end Replace;


    procedure Extract (A_Tree : in out Object; An_Element : out Element) is

    begin
        Trees.Search_And_Delete (A_Tree, An_Element);

    exception

        when Trees.No_More_Element =>
            null;
    end Extract;

    procedure Destroy_Tree (A_Tree : in out Object) is


        procedure Dest_Tree is new Trees.Destroy_Deep (Free_Element);

    begin
        Dest_Tree (A_Tree);
    end Destroy_Tree;

    function Create_Iterator (A_Tree : in Object) return Iterator is
    begin
        return Trees.Make_Iter (A_Tree);
    end Create_Iterator;

    procedure First_Iteration (An_Iterator : in out Iterator;
                               An_Element : out Element) is
    begin
        Trees.First (An_Iterator, An_Element);
    end First_Iteration;


    procedure First_Iteration (A_Tree : in Object;
                               An_Iterator : in out Iterator;
                               An_Element : out Element) is

    begin

        Trees.Make_Iterator (A_Tree, An_Iterator, An_Element);

    end First_Iteration;


    procedure Iterate (An_Iterator : in out Iterator;
                       An_Element : out Element) is
    begin
        Trees.Next (An_Iterator, An_Element);
    exception
        when others =>
            Text_Io.Put_Line ("!!!! WARNING !!!!" & "  ==> No More Elements");
    end Iterate;

    function End_Iteration (An_Iterator : Iterator) return Boolean is
    begin
        return not Trees.More (An_Iterator);
    end End_Iteration;

    --procedure Init_Iterator (A_Tree : in Object);
end Nos_Arbres;

E3 Meta Data

    nblk1=5
    nid=5
    hdr6=8
        [0x00] rec0=2f rec1=00 rec2=01 rec3=004
        [0x01] rec0=1d rec1=00 rec2=04 rec3=050
        [0x02] rec0=24 rec1=00 rec2=02 rec3=00c
        [0x03] rec0=0c rec1=00 rec2=03 rec3=000
        [0x04] rec0=0c rec1=00 rec2=03 rec3=000
    tail 0x21541d39e864b58bbf9ac 0x42a00088462060003
Free Block Chain:
  0x5: 0000  00 00 00 0f 80 0c 41 5f 54 72 65 65 20 3a 20 69  ┆      A_Tree : i┆