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

⟦70eb03e60⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Answers_Array, seg_055418, seg_05546b, seg_056208

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



package body Answers_Array is
    type Answer is
        record
            List : Liste_Parametre.List := Liste_Parametre.Nil;
            Identif : Parametre_Defs.Identificator :=
               Parametre_Defs.Unknown_Object;
        end record;
    Answer_Nil : constant Answer :=
       (Liste_Parametre.Nil, Parametre_Defs.Unknown_Object);

    task T_Answers_Array is
        entry Get (I : in Index; The_Answer : out Answer);
        entry Put (I : in Index; The_Answer : in Answer);
        entry Is_Arrived (I : in Index; Occupied : out Boolean);
        entry Dispose;
    end T_Answers_Array;

    procedure Get (I : Index; Liste : out Liste_Parametre.List) is
        The_Answer : Answer;
    begin
        T_Answers_Array.Get (I, The_Answer);
        Liste := The_Answer.List;
    end Get;

    procedure Get (I : Index; Identif : out Parametre_Defs.Identificator) is
        The_Answer : Answer;
    begin
        T_Answers_Array.Get (I, The_Answer);
        Identif := The_Answer.Identif;
    end Get;

    procedure Get (I : Index;
                   Identif : out Parametre_Defs.Identificator;
                   Liste : out Liste_Parametre.List) is
        The_Answer : Answer;
    begin
        T_Answers_Array.Get (I, The_Answer);
        Identif := The_Answer.Identif;
        Liste := The_Answer.List;
    end Get;

    procedure Put (I : Index; Liste : in Liste_Parametre.List) is
        The_Answer : Answer;
    begin
        The_Answer.List := Liste;
        T_Answers_Array.Put (I, The_Answer);
    end Put;

    procedure Put (I : Index; Identif : in Parametre_Defs.Identificator) is
        The_Answer : Answer;
    begin
        The_Answer.Identif := Identif;
        T_Answers_Array.Put (I, The_Answer);
    end Put;

    procedure Put (I : Index;
                   Identif : in Parametre_Defs.Identificator;
                   Liste : in Liste_Parametre.List) is
        The_Answer : Answer;
    begin
        The_Answer.List := Liste;
        The_Answer.Identif := Identif;
        T_Answers_Array.Put (I, The_Answer);
    end Put;


    function Is_Arrived (I : in Index) return Boolean is
        Value : Boolean;
    begin
        T_Answers_Array.Is_Arrived (I, Value);
        return Value;
    end Is_Arrived;

    procedure Dispose is

    begin
        T_Answers_Array.Dispose;  
    end Dispose;


    task body T_Answers_Array is
        Mon_Tableau : array (Index) of Answer;
        End_Tab : Boolean := False;
        Var : Natural;
    begin
        loop
            select
                accept Get (I : in Index; The_Answer : out Answer) do
                    The_Answer := Mon_Tableau (I);
                    Mon_Tableau (I) := Answer_Nil;
                end Get;
            or
                accept Put (I : in Index; The_Answer : in Answer) do
                    Mon_Tableau (I) := The_Answer;

                end Put;
            or
                accept Is_Arrived (I : in Index; Occupied : out Boolean) do
                    Var := (Liste_Parametre.Length (Mon_Tableau (I).List));
                    Occupied := (Var /= 0) or
                                   not (Parametre_Defs."="
                                           (Mon_Tableau (I).Identif,
                                            Parametre_Defs.Unknown_Object));
                end Is_Arrived;
            or
                accept Dispose do
                    End_Tab := True;
                end Dispose;
            end select;
            exit when End_Tab;
        end loop;
    end T_Answers_Array;
end Answers_Array;

E3 Meta Data

    nblk1=6
    nid=4
    hdr6=8
        [0x00] rec0=1d rec1=00 rec2=01 rec3=050
        [0x01] rec0=1f rec1=00 rec2=06 rec3=026
        [0x02] rec0=25 rec1=00 rec2=02 rec3=008
        [0x03] rec0=12 rec1=00 rec2=05 rec3=000
        [0x04] rec0=08 rec1=00 rec2=03 rec3=000
        [0x05] rec0=00 rec1=00 rec2=00 rec3=080
    tail 0x2175f349e87bc8ae3ec0d 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 03 02 9e 80 3b 61 63 63 65 70 74 20 49 73 5f  ┆     ;accept Is_┆
  0x3: 0000  00 00 00 dd 80 12 20 61 63 63 65 70 74 20 44 69  ┆       accept Di┆