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

⟦ff895bed6⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Groupe, seg_04cc88, seg_04cd6e

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 Groupe is
    Groupe_Taille_Error : exception;

    function Liste (Le_Groupe : in Groupe.Object) return Liste_Porteurs.List is
    begin
        return Le_Groupe.Liste_De_Porteurs;
    end Liste;

    procedure Vide_List (Un_Groupe : in out Groupe.Object) is
    begin
        Liste_Porteurs.Free (Un_Groupe.Liste_De_Porteurs);
    end Vide_List;

    procedure Parcours (Iterateur : in out Liste_Porteurs.Iterator;
                        Le_Groupe : Groupe.Object) is
    begin
        Liste_Porteurs.Init (Iterateur, Le_Groupe.Liste_De_Porteurs);
        Text_Io.Put_Line ("--- Nom du Groupe ---");
        Text_Io.Put_Line (Image (Le_Groupe));
        Text_Io.Put_Line ("--- Parcours de la Liste de Porteurs ---");
        loop
            exit when Liste_Porteurs.Done (Iterateur);
            Text_Io.Put_Line (Porteur.Image (Liste_Porteurs.Value (Iterateur)));
            Liste_Porteurs.Next (Iterateur);
        end loop;

    end Parcours;


    function Image (Le_Groupe : Groupe.Object) return String is
    begin
        return String'(Le_Groupe.Nom_De_Groupe (1 .. Le_Groupe.Dernier_Char));
    end Image;

    function Longueur_Name (Le_Groupe : in Groupe.Object) return Natural is
    begin
        return Le_Groupe.Dernier_Char;
    end Longueur_Name;

    function Longueur (Le_Groupe : in Groupe.Object) return Natural is
    begin
        return Natural'(Liste_Porteurs.Length (Le_Groupe.Liste_De_Porteurs));
    end Longueur;

    procedure Insert_Element (Element : Porteur.Object;
                              Le_Groupe : in out Groupe.Object) is
    begin
        Le_Groupe.Liste_De_Porteurs :=
           Liste_Porteurs.Make (Element, Le_Groupe.Liste_De_Porteurs);
    end Insert_Element;


    procedure Set (Le_Groupe : out Groupe.Object; Nom_De_Groupe : String) is
        Dernier_Char : Natural;
    begin
        Dernier_Char := Nom_De_Groupe'Last;
        if (Dernier_Char > 30) then
            raise Groupe_Taille_Error;
        end if;
        Le_Groupe.Nom_De_Groupe (1 .. Dernier_Char) :=
           Nom_De_Groupe (1 .. Dernier_Char);
        Le_Groupe.Dernier_Char := Dernier_Char;
    exception
        when Groupe_Taille_Error =>
            Text_Io.Put_Line
               ("Taille du nom du Groupe : 30 Caracteres maximum !");
    end Set;

    procedure Search (Le_Groupe : in Groupe.Object;
                      Numero_De_Carte : Natural;
                      Le_Porteur : out Porteur.Object) is
        Number : Natural;
        Iterateur : Liste_Porteurs.Iterator;
    begin
        Liste_Porteurs.Init (Iterateur, Le_Groupe.Liste_De_Porteurs);
        Porteur.Set (Le_Porteur, "", 0);
        loop
            exit when Liste_Porteurs.Done (Iterateur);
            Number := Porteur.Get (Liste_Porteurs.Value (Iterateur));
            if (Number = Numero_De_Carte) then
                Le_Porteur := Liste_Porteurs.Value (Iterateur);
                exit;
            end if;
            Liste_Porteurs.Next (Iterateur);
        end loop;
    end Search;

end Groupe;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=1c rec1=00 rec2=01 rec3=000
        [0x01] rec0=1f rec1=00 rec2=02 rec3=012
        [0x02] rec0=18 rec1=00 rec2=03 rec3=04e
        [0x03] rec0=08 rec1=00 rec2=04 rec3=000
    tail 0x217540c9a874f6e38db48 0x42a00088462060003