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

⟦f03c7ee9f⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body L_Zones, seg_04cc9c, seg_04cd86

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 Text_Io;
package body L_Zones is

    Zones_Taille_Error : exception;

    procedure Parcours (Les_Zones : Object) is
        Iterateur : Liste.Iterator;
    begin
        Liste.Init (Iterateur, Les_Zones);
        Text_Io.Put_Line ("--- Parcours de la Liste des Zones ---");
        loop
            exit when Liste.Done (Iterateur);
            Zone.Parcours (Liste.Value (Iterateur));
            Liste.Next (Iterateur);
        end loop;
    end Parcours;

    function Longueur (Les_Zones : in Object) return Natural is
    begin
        return Natural'(Liste.Length (Les_Zones));
    end Longueur;

    procedure Insert_Element (Element : Zone.Object;
                              Les_Zones : in out Object) is
    begin
        Les_Zones := Liste.Make (Element, Les_Zones);
    end Insert_Element;

    procedure Search (Les_Zones : in Object;
                      Numero_Lecteur : in Natural;
                      La_Zone : in out Zone.Object;
                      La_Porte : in out Porte.Object) is
        Iterateur : Liste.Iterator;
    begin  
        Porte.Set (La_Porte => La_Porte,
                   Nom_De_Porte => "",
                   Numero_De_Lecteur => 0);
        Liste.Init (Iterateur, Les_Zones);
        loop

            exit when Liste.Done (Iterateur);
            La_Zone := Liste.Value (Iterateur);
            Zone.Search (La_Zone => La_Zone,
                         Numero_De_Lecteur => Numero_Lecteur,
                         La_Porte => La_Porte);
            exit when Porte.Get (La_Porte) /= 0;
            Liste.Next (Iterateur);
        end loop;

    end Search;


    procedure Search (Les_Zones : in Object;
                      Nom_De_Zone : String;
                      La_Zone : out Zone.Object) is
        Dernier_Car_Cherche : Natural;
        Dernier_Car_Trouve : Natural;
        Iterateur : Liste.Iterator;
    begin
        Dernier_Car_Cherche := Nom_De_Zone'Length;
        Liste.Init (Iterateur, Les_Zones);
        Zone.Set_Name (La_Zone, "");
        loop
            exit when Liste.Done (Iterateur);
            Dernier_Car_Trouve := Zone.Longueur_Name (Liste.Value (Iterateur));
            if (Dernier_Car_Trouve = Dernier_Car_Cherche) then
                if (Nom_De_Zone (1 .. Dernier_Car_Cherche) =
                    Zone.Image (Liste.Value (Iterateur))) then
                    La_Zone := Liste.Value (Iterateur);
                    exit;
                end if;
            end if;
            Liste.Next (Iterateur);
        end loop;
    end Search;

    function Search (Les_Zones : in Object; Nom_De_Zone : String)
                    return Boolean is
        Iterateur : Liste.Iterator;
        Dernier_Car_Cherche : Natural;
        Dernier_Car_Trouve : Natural;
    begin
        Dernier_Car_Cherche := Nom_De_Zone'Length;
        Liste.Init (Iterateur, Les_Zones);
        loop
            exit when Liste.Done (Iterateur);
            Dernier_Car_Trouve := Zone.Longueur_Name (Liste.Value (Iterateur));
            if (Dernier_Car_Trouve = Dernier_Car_Cherche) then
                if (Nom_De_Zone (1 .. Dernier_Car_Cherche) =
                    Zone.Image (Liste.Value (Iterateur))) then
                    return True;
                end if;
            end if;
            Liste.Next (Iterateur);
        end loop;
        return False;
    end Search;

end L_Zones;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=20 rec1=00 rec2=01 rec3=05c
        [0x01] rec0=1d rec1=00 rec2=02 rec3=040
        [0x02] rec0=1a rec1=00 rec2=03 rec3=012
        [0x03] rec0=0e rec1=00 rec2=04 rec3=000
    tail 0x217540cd6874f6e5a4149 0x42a00088462060003