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

⟦519586d00⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Do_Subscription, seg_057490

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 Parametre_Defs;
with Byte_Defs;
with Utils;
with Bounded_String;
with Bls_Constant;
with Generic_Request_To_Orb;
with Parametre;
with Queue_Parametre;
with Liste_Parametre;  
with Client_Request_To_Orb;
with Task_Io;
procedure Do_Subscription is
    My_Class : constant String (1 .. 11) := "subscriptor";
    Result : Boolean;
    Empty_Queue : Queue_Parametre.Queue;
    Answer_List : Liste_Parametre.List;
    Number_For_Subscription, Number_Of_Request_1, Number_Of_Request_2 :
       Parametre_Defs.Message_Number;
    The_Answer : Parametre.Variable_String;
    Response_Arrived : Boolean;
    Iter : Liste_Parametre.Iterator;
    Identificator_Of_Server : Parametre_Defs.Identificator;

    function Init return Boolean is
        Resultat : Boolean;
        Parametres_Entree, Parametres_Sortie : Queue_Parametre.Queue;
    begin
        Client_Request_To_Orb.Init (Bls_Constant.Orb_Socket,
                                    Bls_Constant.Orb_Host, Resultat);
        if Resultat = True then
            Client_Request_To_Orb.Registration (My_Class);
        end if;
        return Resultat;
    end Init;

    procedure Close is
    begin
        Client_Request_To_Orb.Unregistration;
        Client_Request_To_Orb.Close;
    end Close;

begin
    Result := Init;
    if Result then
        Queue_Parametre.Initialize (Empty_Queue);
        Number_Of_Request_1 := Client_Request_To_Orb.Request
                                  ("calendrier", "DATE", Empty_Queue);
        loop
            Response_Arrived := Client_Request_To_Orb.Answer_Arrived
                                   (Number_Of_Request_1);  
            exit when Response_Arrived;
        end loop;
        Task_Io.Put_Line ("reponse arrivee");
        Client_Request_To_Orb.Get_Emet_Answer
           (Number_Of_Request_1, Identificator_Of_Server, Answer_List);

        Liste_Parametre.Init (Iter, Answer_List);
        The_Answer := Liste_Parametre.Value (Iter);
        Task_Io.Put_Line ("reponse numero 1 : " &
                          Bounded_String.Image (The_Answer));
        Number_For_Subscription :=
           Client_Request_To_Orb.Subscription
              ("calendrier", Identificator_Of_Server, "DATE");
        loop  
            Task_Io.Put_Line ("j'attend une reponse");
            loop
                exit when Client_Request_To_Orb.Answer_Arrived
                             (Number_Of_Request_1);
            end loop;
            Client_Request_To_Orb.Get_Answer (Number_Of_Request_1, Answer_List);
            if not Liste_Parametre.Is_Empty (Answer_List) then
                Liste_Parametre.Init (Iter, Answer_List);
                The_Answer := Liste_Parametre.Value (Iter);
                Task_Io.Put_Line ("reponse recue : " &
                                  Bounded_String.Image (The_Answer));
            end if;
        end loop;
    end if;

end Do_Subscription;

E3 Meta Data

    nblk1=6
    nid=4
    hdr6=6
        [0x00] rec0=1e rec1=00 rec2=01 rec3=070
        [0x01] rec0=1d rec1=00 rec2=05 rec3=030
        [0x02] rec0=17 rec1=00 rec2=06 rec3=000
        [0x03] rec0=0b rec1=00 rec2=05 rec3=000
        [0x04] rec0=0c rec1=00 rec2=02 rec3=000
        [0x05] rec0=43 rec1=de rec2=4b rec3=5d5
    tail 0x21764558487c780f67e49 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 02 03 fc 80 2d 20 20 20 20 20 20 20 20 20 20  ┆     -          ┆
  0x2: 0000  00 03 01 ec 80 0a 72 65 70 6f 6e 73 65 22 29 3b  ┆      reponse");┆
  0x3: 0000  00 00 00 11 80 0e 69 6e 65 20 28 22 72 65 70 6f  ┆      ine ("repo┆