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

⟦00a396afc⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Package_Request, seg_026cf5

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 Umps_Defs;
with Request;
with Set;
with Slot;  
with Text_Io;

package body Package_Request is

    procedure Test_Creation is
        Rq    : Request.Element;
        Param : Set.Object := Set.Null_Object;
        function Rq_Image is new Request.Image
                                    (Separator => Umps_Defs.Separator);
        use Text_Io;
    begin
        Put_Line ("-- Creation d'une Requete :");
        Put_Line
           ("-- Requete : 2, 3, Open, 2, File, string, toto.c, Rights, string, rw.");
        Request.Add_Sender (2, Rq);
        Request.Add_Handler (3, Rq);
        Request.Add_Method ("Open", Rq);
        Param :=
           Set.Add
              (Slot.Make (The_Variable => "Rights", With_Value => "rw"), Param);
        Param :=
           Set.Add (Slot.Make (The_Variable => "File", With_Value => "toto.c"),
                    Param);
        Request.Add_Params (Param, Rq);
        Put_Line ("ENTEXTE : " & Rq_Image (Rq));
        Set.Free (Param);
        New_Line;  
        Request.Display (Rq);

        New_Line;
        Put_Line ("-- Affichage des differents champs :");
        Put_Line ("-- Requete");
        Put_Line (Umps_Defs.Behavior_Number'Image (Request.Sender (Rq)));
        Put_Line (Umps_Defs.Behavior_Number'Image (Request.Handler (Rq)));
        Put_Line (Request.Method (Rq));
    end Test_Creation;


    procedure Test_Comparaison is
        Rq    : Request.Element;
        Rq2   : Request.Element;
        Param : Set.Object := Set.Null_Object;
        function Is_Name_Equal  is new Request.Is_Equal (Field => Slot.On_Name);
        function Is_Kind_Equal  is new Request.Is_Equal (Field => Slot.On_Kind);
        function Is_Value_Equal is
           new Request.Is_Equal (Field => Slot.On_Value);
        function Rq_Image       is new Request.Image
                                          (Separator => Umps_Defs.Separator);
        use Text_Io;
    begin
        Put_Line ("-- Creation d'une Requete :");
        Put_Line
           ("-- Requete : 2, 3, Date, 3, Day, integer, 5, Mounth, integer, 4, Year, integer, 1993");
        Request.Add_Sender (2, Rq);
        Request.Add_Handler (3, Rq);
        Request.Add_Method ("Date", Rq);
        Param :=
           Set.Add
              (Slot.Make (The_Variable => "Mounth", With_Value => 4), Param);
        Param := Set.Add
                    (Slot.Make (The_Variable => "Day", With_Value => 5), Param);
        Param :=
           Set.Add
              (Slot.Make (The_Variable => "Year", With_Value => 1993), Param);
        Request.Add_Params (Param, Rq);
        Put_Line ("ENTEXTE : " & Rq_Image (Rq));
        Set.Free (Param);
        New_Line;  
        Put_Line ("-- Copie de la requete");
        Rq2 := Rq;
        Put_Line ("-- Test egalite sur noms (TRUE)" &
                  Boolean'Image (Is_Name_Equal (Rq, Rq2)));
        Put_Line ("-- Test egalite sur kinds (TRUE)" &
                  Boolean'Image (Is_Kind_Equal (Rq, Rq2)));
        Put_Line ("-- Test egalite sur values (TRUE)" &
                  Boolean'Image (Is_Value_Equal (Rq, Rq2)));

        Put_Line ("-- Creation d'une 2eme requete avec une valeur vide");
        Request.Add_Sender (2, Rq2);
        Request.Add_Handler (3, Rq2);
        Request.Add_Method ("Date", Rq2);
        Param :=
           Set.Add
              (Slot.Make (The_Variable => "Mounth", With_Value => 4), Param);
        Param := Set.Add
                    (Slot.Make (The_Variable => "Day", With_Value => 5), Param);
        Param :=
           Set.Add
              (Slot.Make (The_Variable => "Year", With_Kind => Slot.Integer),
               Param);
        Request.Add_Params (Param, Rq2);
        Put_Line ("ENTEXTE : " & Rq_Image (Rq2));
        Set.Free (Param);
        Put_Line ("-- Test egalite sur noms (TRUE)" &
                  Boolean'Image (Is_Name_Equal (Rq, Rq2)));
        Put_Line ("-- Test egalite sur kinds (TRUE)" &
                  Boolean'Image (Is_Kind_Equal (Rq, Rq2)));
        Put_Line ("-- Test egalite sur values (FALSE)" &
                  Boolean'Image (Is_Value_Equal (Rq, Rq2)));
        New_Line;  
    end Test_Comparaison;


    procedure Test is
        use Text_Io;
    begin  
        New_Line;
        Put_Line ("---> Test Package Request");
        New_Line;

        Put_Line ("-- Test de creation et affichage");
        Test_Creation;
        New_Line;

        Put_Line ("-- Test de comparaison");
        Test_Comparaison;
        New_Line;

    end Test;


end Package_Request;

E3 Meta Data

    nblk1=7
    nid=4
    hdr6=a
        [0x00] rec0=1e rec1=00 rec2=01 rec3=05e
        [0x01] rec0=19 rec1=00 rec2=07 rec3=012
        [0x02] rec0=17 rec1=00 rec2=02 rec3=056
        [0x03] rec0=17 rec1=00 rec2=06 rec3=004
        [0x04] rec0=1b rec1=00 rec2=03 rec3=000
        [0x05] rec0=1b rec1=00 rec2=05 rec3=001
        [0x06] rec0=ce rec1=b4 rec2=00 rec3=011
    tail 0x21520433a83aa67747bb9 0x42a00088462063c03
Free Block Chain:
  0x4: 0000  00 05 02 ba 80 32 20 20 20 20 50 75 74 5f 4c 69  ┆     2    Put_Li┆
  0x5: 0000  00 00 02 a5 80 1d 74 20 65 67 61 6c 69 74 65 20  ┆      t egalite ┆