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

⟦7c6ac819d⟧ Ada Source

    Length: 17408 (0x4400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bdd, seg_04f78c

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Table;
with Lecteur_68;
with Lecteur_Zone_68;
with Acces_68;
with Plage_68;
with Carte_Groupe_68;
with Carte_68;

package body Bdd is

    package O_G renames Objet_Generic;


    package T_Bdd_Lecteur is new Table (Item => Lecteur_68.Object,
                                        Max_Item => Max_Lecteur,
                                        Max_Taille_Hash => Max_Lecteur / 4,
                                        Cle => Lecteur_68.Get_Numero,
                                        Image => Lecteur_68.Image);

    package T_Bdd_Lecteur_Zone is
       new Table (Item => Lecteur_Zone_68.Object,
                  Max_Item => Max_Lecteur_Zone,
                  Max_Taille_Hash => Max_Lecteur_Zone / 4,
                  Cle => Lecteur_Zone_68.Get_Zone,
                  Image => Lecteur_Zone_68.Image);

    package T_Bdd_Acces is new Table (Item => Acces_68.Object,
                                      Max_Item => Max_Acces,
                                      Max_Taille_Hash => Max_Acces / 4,
                                      Cle => Acces_68.Get_Zone,
                                      Image => Acces_68.Image);

    package T_Bdd_Plage is new Table (Item => Plage_68.Object,
                                      Max_Item => Max_Plage,
                                      Max_Taille_Hash => Max_Plage / 4,
                                      Cle => Plage_68.Get_Zone,
                                      Image => Plage_68.Image);

    package T_Bdd_Carte_Groupe is
       new Table (Item => Carte_Groupe_68.Object,
                  Max_Item => Max_Carte_Groupe,
                  Max_Taille_Hash => Max_Carte_Groupe / 4,
                  Cle => Carte_Groupe_68.Get_Groupe,
                  Image => Carte_Groupe_68.Image);

    package T_Bdd_Carte is new Table (Item => Carte_68.Object,
                                      Max_Item => Max_Carte,
                                      Max_Taille_Hash => Max_Carte / 4,
                                      Cle => Carte_68.Get_Numero,
                                      Image => Carte_68.Image);

    Bdd_Lecteur : T_Bdd_Lecteur.Object;
    Bdd_Lecteur_Zone : T_Bdd_Lecteur_Zone.Object;
    Bdd_Acces : T_Bdd_Acces.Object;
    Bdd_Plage : T_Bdd_Plage.Object;
    Bdd_Carte_Groupe : T_Bdd_Carte_Groupe.Object;
    Bdd_Carte : T_Bdd_Carte.Object;

    Bdd_Lecteur_Iter : T_Bdd_Lecteur.Iterateur;
    Bdd_Lecteur_Zone_Iter : T_Bdd_Lecteur_Zone.Iterateur;
    Bdd_Acces_Iter : T_Bdd_Acces.Iterateur;
    Bdd_Plage_Iter : T_Bdd_Plage.Iterateur;
    Bdd_Carte_Groupe_Iter : T_Bdd_Carte_Groupe.Iterateur;
    Bdd_Carte_Iter : T_Bdd_Carte.Iterateur;

    procedure Add_Item (Item : Objet_Generic.Object) is
    begin
        case O_G.Get_Type_Objet (Item) is
            when O_G.Lecteur =>
                if not T_Bdd_Lecteur.Is_In (Bdd_Lecteur,
                                            O_G.Get_Lecteur (Item)) then
                    T_Bdd_Lecteur.Add_Item (Bdd_Lecteur,
                                            O_G.Get_Lecteur (Item));
                end if;
            when O_G.Plage =>
                if not T_Bdd_Plage.Is_In (Bdd_Plage, O_G.Get_Plage (Item)) then
                    T_Bdd_Plage.Add_Item (Bdd_Plage, O_G.Get_Plage (Item));
                end if;
            when O_G.Acces =>
                if not T_Bdd_Acces.Is_In (Bdd_Acces, O_G.Get_Acces (Item)) then
                    T_Bdd_Acces.Add_Item (Bdd_Acces, O_G.Get_Acces (Item));
                end if;
            when O_G.Carte =>  
                if not T_Bdd_Carte.Is_In (Bdd_Carte, O_G.Get_Carte (Item)) then
                    T_Bdd_Carte.Add_Item (Bdd_Carte, O_G.Get_Carte (Item));
                end if;
            when O_G.Lecteur_Zone =>
                if not T_Bdd_Lecteur_Zone.Is_In
                          (Bdd_Lecteur_Zone, O_G.Get_Lecteur_Zone (Item)) then
                    T_Bdd_Lecteur_Zone.Add_Item (Bdd_Lecteur_Zone,
                                                 O_G.Get_Lecteur_Zone (Item));
                end if;
            when O_G.Carte_Groupe =>
                if not T_Bdd_Carte_Groupe.Is_In
                          (Bdd_Carte_Groupe, O_G.Get_Carte_Groupe (Item)) then
                    T_Bdd_Carte_Groupe.Add_Item (Bdd_Carte_Groupe,
                                                 O_G.Get_Carte_Groupe (Item));
                end if;
            when others =>
                raise Bdd_Error;
        end case;
    end Add_Item;

    procedure Mod_Item (Item, Par : Objet_Generic.Object) is

    begin
        if O_G.T_Type_Objet'Pos (O_G.Get_Type_Objet (Item)) =
           O_G.T_Type_Objet'Pos (O_G.Get_Type_Objet (Par)) then
            case O_G.Get_Type_Objet (Item) is
                when O_G.Lecteur =>
                    if T_Bdd_Lecteur.Is_In (Bdd_Lecteur,
                                            O_G.Get_Lecteur (Item)) then
                        T_Bdd_Lecteur.Mod_Item (Bdd_Lecteur,
                                                I => O_G.Get_Lecteur (Item),
                                                Par => O_G.Get_Lecteur (Par));
                    end if;
                when O_G.Plage =>
                    if T_Bdd_Plage.Is_In (Bdd_Plage, O_G.Get_Plage (Item)) then
                        T_Bdd_Plage.Mod_Item (Bdd_Plage,
                                              I => O_G.Get_Plage (Item),
                                              Par => O_G.Get_Plage (Par));
                    end if;
                when O_G.Acces =>
                    if T_Bdd_Acces.Is_In (Bdd_Acces, O_G.Get_Acces (Item)) then
                        T_Bdd_Acces.Mod_Item (Bdd_Acces,
                                              I => O_G.Get_Acces (Item),
                                              Par => O_G.Get_Acces (Par));
                    end if;
                when O_G.Carte =>
                    if T_Bdd_Carte.Is_In (Bdd_Carte, O_G.Get_Carte (Item)) then
                        T_Bdd_Carte.Mod_Item (Bdd_Carte,
                                              I => O_G.Get_Carte (Item),
                                              Par => O_G.Get_Carte (Par));
                    end if;
                when O_G.Lecteur_Zone =>
                    if T_Bdd_Lecteur_Zone.Is_In
                          (Bdd_Lecteur_Zone, O_G.Get_Lecteur_Zone (Item)) then
                        T_Bdd_Lecteur_Zone.Mod_Item
                           (Bdd_Lecteur_Zone,
                            I => O_G.Get_Lecteur_Zone (Item),
                            Par => O_G.Get_Lecteur_Zone (Par));
                    end if;
                when O_G.Carte_Groupe =>
                    if T_Bdd_Carte_Groupe.Is_In
                          (Bdd_Carte_Groupe, O_G.Get_Carte_Groupe (Item)) then
                        T_Bdd_Carte_Groupe.Mod_Item
                           (Bdd_Carte_Groupe,
                            I => O_G.Get_Carte_Groupe (Item),
                            Par => O_G.Get_Carte_Groupe (Par));
                    end if;
                when others =>
                    raise Bdd_Error;
            end case;
        else  
            raise Bdd_Error;
        end if;
    end Mod_Item;

    procedure Rem_Item (Item : Objet_Generic.Object) is

    begin
        case O_G.Get_Type_Objet (Item) is
            when O_G.Lecteur =>
                if T_Bdd_Lecteur.Is_In (Bdd_Lecteur,
                                        O_G.Get_Lecteur (Item)) then
                    T_Bdd_Lecteur.Rem_Item (Bdd_Lecteur,
                                            O_G.Get_Lecteur (Item));
                end if;
            when O_G.Plage =>
                if T_Bdd_Plage.Is_In (Bdd_Plage, O_G.Get_Plage (Item)) then
                    T_Bdd_Plage.Rem_Item (Bdd_Plage, O_G.Get_Plage (Item));
                end if;
            when O_G.Acces =>
                if T_Bdd_Acces.Is_In (Bdd_Acces, O_G.Get_Acces (Item)) then
                    T_Bdd_Acces.Rem_Item (Bdd_Acces, O_G.Get_Acces (Item));
                end if;
            when O_G.Carte =>
                if T_Bdd_Carte.Is_In (Bdd_Carte, O_G.Get_Carte (Item)) then
                    T_Bdd_Carte.Rem_Item (Bdd_Carte, O_G.Get_Carte (Item));
                end if;
            when O_G.Lecteur_Zone =>
                if T_Bdd_Lecteur_Zone.Is_In (Bdd_Lecteur_Zone,
                                             O_G.Get_Lecteur_Zone (Item)) then
                    T_Bdd_Lecteur_Zone.Rem_Item (Bdd_Lecteur_Zone,
                                                 O_G.Get_Lecteur_Zone (Item));
                end if;
            when O_G.Carte_Groupe =>
                if T_Bdd_Carte_Groupe.Is_In (Bdd_Carte_Groupe,
                                             O_G.Get_Carte_Groupe (Item)) then
                    T_Bdd_Carte_Groupe.Rem_Item (Bdd_Carte_Groupe,
                                                 O_G.Get_Carte_Groupe (Item));
                end if;
            when others =>
                raise Bdd_Error;
        end case;
    end Rem_Item;

    procedure First_Item (Type_Objet : Objet_Generic.T_Type_Objet) is
    begin
        case Type_Objet is
            when O_G.Lecteur =>
                Bdd_Lecteur_Iter := T_Bdd_Lecteur.First_Item (Bdd_Lecteur);
            when O_G.Plage =>
                Bdd_Plage_Iter := T_Bdd_Plage.First_Item (Bdd_Plage);
            when O_G.Acces =>
                Bdd_Acces_Iter := T_Bdd_Acces.First_Item (Bdd_Acces);
            when O_G.Carte =>
                Bdd_Carte_Iter := T_Bdd_Carte.First_Item (Bdd_Carte);
            when O_G.Lecteur_Zone =>
                Bdd_Lecteur_Zone_Iter :=
                   T_Bdd_Lecteur_Zone.First_Item (Bdd_Lecteur_Zone);
            when O_G.Carte_Groupe =>
                Bdd_Carte_Groupe_Iter :=
                   T_Bdd_Carte_Groupe.First_Item (Bdd_Carte_Groupe);
            when others =>
                raise Bdd_Error;
        end case;
    end First_Item;

    procedure First_Item
                 (Type_Objet : Objet_Generic.T_Type_Objet; Cle : Natural) is
    begin
        case Type_Objet is
            when O_G.Lecteur =>
                Bdd_Lecteur_Iter := T_Bdd_Lecteur.First_Item (Bdd_Lecteur, Cle);
            when O_G.Plage =>
                Bdd_Plage_Iter := T_Bdd_Plage.First_Item (Bdd_Plage, Cle);
            when O_G.Acces =>
                Bdd_Acces_Iter := T_Bdd_Acces.First_Item (Bdd_Acces, Cle);
            when O_G.Carte =>
                Bdd_Carte_Iter := T_Bdd_Carte.First_Item (Bdd_Carte, Cle);
            when O_G.Lecteur_Zone =>
                Bdd_Lecteur_Zone_Iter :=
                   T_Bdd_Lecteur_Zone.First_Item (Bdd_Lecteur_Zone, Cle);
            when O_G.Carte_Groupe =>
                Bdd_Carte_Groupe_Iter :=
                   T_Bdd_Carte_Groupe.First_Item (Bdd_Carte_Groupe, Cle);
            when others =>
                raise Bdd_Error;
        end case;
    end First_Item;

    procedure Next_Item (Type_Objet : Objet_Generic.T_Type_Objet) is
    begin
        case Type_Objet is
            when O_G.Lecteur =>  
                T_Bdd_Lecteur.Next_Item (Bdd_Lecteur_Iter, Bdd_Lecteur);
            when O_G.Plage =>
                T_Bdd_Plage.Next_Item (Bdd_Plage_Iter, Bdd_Plage);
            when O_G.Acces =>
                T_Bdd_Acces.Next_Item (Bdd_Acces_Iter, Bdd_Acces);
            when O_G.Carte =>
                T_Bdd_Carte.Next_Item (Bdd_Carte_Iter, Bdd_Carte);
            when O_G.Lecteur_Zone =>
                T_Bdd_Lecteur_Zone.Next_Item
                   (Bdd_Lecteur_Zone_Iter, Bdd_Lecteur_Zone);
            when O_G.Carte_Groupe =>
                T_Bdd_Carte_Groupe.Next_Item
                   (Bdd_Carte_Groupe_Iter, Bdd_Carte_Groupe);
            when others =>
                raise Bdd_Error;
        end case;
    end Next_Item;

    function Current_Item (Type_Objet : Objet_Generic.T_Type_Objet)
                          return Objet_Generic.Object is
        O : Objet_Generic.Object;
    begin  
        case Type_Objet is
            when O_G.Lecteur =>  
                O_G.Create (O, T_Bdd_Lecteur.Current_Item
                                  (Bdd_Lecteur_Iter, Bdd_Lecteur));
            when O_G.Plage =>
                O_G.Create (O, T_Bdd_Plage.Current_Item
                                  (Bdd_Plage_Iter, Bdd_Plage));
            when O_G.Acces =>
                O_G.Create (O, T_Bdd_Acces.Current_Item
                                  (Bdd_Acces_Iter, Bdd_Acces));
            when O_G.Carte =>
                O_G.Create (O, T_Bdd_Carte.Current_Item
                                  (Bdd_Carte_Iter, Bdd_Carte));
            when O_G.Lecteur_Zone =>
                O_G.Create (O, T_Bdd_Lecteur_Zone.Current_Item
                                  (Bdd_Lecteur_Zone_Iter, Bdd_Lecteur_Zone));
            when O_G.Carte_Groupe =>
                O_G.Create (O, T_Bdd_Carte_Groupe.Current_Item
                                  (Bdd_Carte_Groupe_Iter, Bdd_Carte_Groupe));
            when others =>
                raise Bdd_Error;
        end case;
        return O;
    end Current_Item;

    function End_Iter
                (Type_Objet : Objet_Generic.T_Type_Objet) return Boolean is
    begin
        case Type_Objet is
            when O_G.Lecteur =>  
                return T_Bdd_Lecteur.End_Of_Iter (Bdd_Lecteur_Iter);
            when O_G.Plage =>
                return T_Bdd_Plage.End_Of_Iter (Bdd_Plage_Iter);
            when O_G.Acces =>
                return T_Bdd_Acces.End_Of_Iter (Bdd_Acces_Iter);
            when O_G.Carte =>
                return T_Bdd_Carte.End_Of_Iter (Bdd_Carte_Iter);
            when O_G.Lecteur_Zone =>
                return T_Bdd_Lecteur_Zone.End_Of_Iter (Bdd_Lecteur_Zone_Iter);
            when O_G.Carte_Groupe =>
                return T_Bdd_Carte_Groupe.End_Of_Iter (Bdd_Carte_Groupe_Iter);
            when others =>
                raise Bdd_Error;
        end case;
    end End_Iter;

begin

    T_Bdd_Lecteur.Initialise (Bdd_Lecteur);
    T_Bdd_Lecteur_Zone.Initialise (Bdd_Lecteur_Zone);
    T_Bdd_Acces.Initialise (Bdd_Acces);
    T_Bdd_Plage.Initialise (Bdd_Plage);
    T_Bdd_Carte_Groupe.Initialise (Bdd_Carte_Groupe);
    T_Bdd_Carte.Initialise (Bdd_Carte);

end Bdd;

E3 Meta Data

    nblk1=10
    nid=0
    hdr6=20
        [0x00] rec0=18 rec1=00 rec2=01 rec3=04c
        [0x01] rec0=14 rec1=00 rec2=03 rec3=018
        [0x02] rec0=17 rec1=00 rec2=02 rec3=00a
        [0x03] rec0=13 rec1=00 rec2=0c rec3=040
        [0x04] rec0=17 rec1=00 rec2=0f rec3=008
        [0x05] rec0=11 rec1=00 rec2=07 rec3=00a
        [0x06] rec0=11 rec1=00 rec2=0b rec3=020
        [0x07] rec0=19 rec1=00 rec2=06 rec3=05c
        [0x08] rec0=12 rec1=00 rec2=0d rec3=08c
        [0x09] rec0=17 rec1=00 rec2=05 rec3=05e
        [0x0a] rec0=09 rec1=00 rec2=10 rec3=016
        [0x0b] rec0=17 rec1=00 rec2=04 rec3=018
        [0x0c] rec0=19 rec1=00 rec2=08 rec3=064
        [0x0d] rec0=15 rec1=00 rec2=0e rec3=004
        [0x0e] rec0=17 rec1=00 rec2=0a rec3=04a
        [0x0f] rec0=10 rec1=00 rec2=09 rec3=000
    tail 0x2154a942687784c070af3 0x42a00088462060003