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

⟦90d4f2a7e⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Set_Of_Links, seg_049050, seg_049373

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 Binary_Trees_Pkg, Bounded_String;
use Bounded_String;

package Set_Of_Links is

    Duplicate_Value : exception;

    type Object is private;

    type Lock is (No_State, Linked, Unlinked);


    -- Creation d'un ensemble de liens ---------------------------------------------------

    procedure Create (Set : in out Object);


    -- Destruction d'un ensemble ---------------------------------------------------------

    procedure Destroy (Set : in out Object);


    -- Ajout d'un lien (objet1, objet2) a l'ensemble -------------------------------------
    --
    -- Duplicate_Value (Exception) est levee si le couple (objet1, objet2) a deja ete
    --                             defini dans l'ensemble

    procedure Add_New (First_Item, Second_Item : String;
                       Link_State : Lock;
                       Set : in out Object);


    -- Modifie l'etat d'un lien ----------------------------------------------------------

    procedure Modify_State (First_Item, Second_Item : String;
                            Link_State : Lock;
                            Set : in out Object);


    -- Echange l'etat de 2 liens (objet1, objet2) et (objet1, objet3) --------------------

    procedure Exchange (First_Item, Second_Item, Third_Item : String;
                        Set : in out Object);


    -- Test l'existance d'un lien dans l'ensemble ----------------------------------------

    function Exist (First_Item, Second_Item : String; Set : Object)
                   return Boolean;


    -- Affiche tous les objets lies a "Item" et dont l'etat du lien est "Link_State" -----

    procedure List (Item : String; Link_State : Lock; Set : Object);


    -- Retourne l'etat d'un lien ---------------------------------------------------------

    function What_State
                (First_Item, Second_Item : String; Set : Object) return Lock;


    -- Affiche un ensemble de liens ------------------------------------------------------

    procedure Dump (Set : Object);

private

    type Link is
        record
            First : Variable_String (32);
            Second : Variable_String (32);
            State : Lock;
        end record;

    function Compare (A, B : Link) return Integer;

    package Links_Tree is new Binary_Trees_Pkg (Link, Compare);

    type Object is
        record
            Root : Links_Tree.Tree;
        end record;

end Set_Of_Links;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=0ae
        [0x01] rec0=1e rec1=00 rec2=02 rec3=032
        [0x02] rec0=17 rec1=00 rec2=04 rec3=001
        [0x03] rec0=94 rec1=00 rec2=00 rec3=000
    tail 0x2174d54a8865b3e9d79c2 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 12 80 0c 65 74 5f 4f 66 5f 4c 69 6e 6b  ┆      et_Of_Link┆