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

⟦c316f43a5⟧ Ada Source

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

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 Couche_Haute_Msg;
with Interface_C;
with Fifo_Msg_To_Send;
with Fifo_Received_Msg;
with My_Utilities;
with Socket_Defs;
with Text_Io;


package body Behav_Msg is


    -- Create the tasks witch controlled the fifo where are stocked temporary the messages :

    Task_Performing_Fifo_Received_Msg : Fifo_Received_Msg.Access_Task_Fifo :=
       new Fifo_Received_Msg.Task_Fifo;

    Task_Performing_Fifo_Msg_To_Send : Fifo_Msg_To_Send.Access_Task_Fifo :=
       new Fifo_Msg_To_Send.Task_Fifo;





    procedure Init is
        Brocker_Listen_Socket_Port : Socket_Defs.Socket_Port;
        Brocker_Host_Name          : Socket_Defs.Host_Name;
    begin

        Text_Io.Put_Line ("Behavior Messages performer V.0.1");
        -- Read "parameters" file to find the Brocker Listen socket port.
        Brocker_Listen_Socket_Port := 9876;
        -- .... to complete ...

        -- Read "parameters" file to find the Brocker Host name.
        Brocker_Host_Name (1 .. 9) := "belladone";
        -- .... to complete ...


        -- Establish a temporaly connection with the Broker to ask a port number
        -- for the task Server  :

        -- Create a temporaly Server to get the Broker response :
        -- we wait for the right Server port number :

        declare
            Temporaly_Listen_Socket_Id      : Socket_Defs.Socket_Id;
            Temporaly_Service_Socket_Id     : Socket_Defs.Socket_Id;
            Msg_Asking_A_Server_Port_Number : Socket_Defs.Msg;
            Result                          : Boolean;

            Buffer_To_Receive             : Socket_Defs.Msg;
            Length_Of_Buffer_To_Receive   : Integer := Socket_Defs.Msg_Length;
            Number_Of_Caracteres_Received : Integer;
        begin

            Text_Io.Put_Line ("Create temporaly server...");


            Temporaly_Listen_Socket_Id := Interface_C.Create_Server
                                             (Brocker_Listen_Socket_Port + 1);

            Msg_Asking_A_Server_Port_Number (1 .. 25)     :=
               "PROTOCOL GIVE_ME_A_NUMBER";
            Msg_Asking_A_Server_Port_Number
               (26 .. 26 + Socket_Defs.Host_Name_Length)  := Brocker_Host_Name;
            Msg_Asking_A_Server_Port_Number
               (26 + Socket_Defs.Host_Name_Length ..
                   26 + Socket_Defs.Host_Name_Length + 6) :=
               Integer'Image (Temporaly_Listen_Socket_Id);

            Task_Performing_Fifo_Msg_To_Send.Put
               (Msg_Asking_A_Server_Port_Number, Result);

            Text_Io.Put_Line ("temporaly server wait a connection ...");
            Temporaly_Service_Socket_Id :=
               Interface_C.Server_Wait_For_A_Connection
                  (Temporaly_Listen_Socket_Id);

            Text_Io.Put_Line ("connection to the temporaly server.");


            Interface_C.Receive_String
               (Temporaly_Service_Socket_Id,Buffer_To_Receive,
                Length_Of_Buffer_To_Receive, Number_Of_Caracteres_Received);  
            Text_Io.Put_Line ("Get to the temporaly server.");

            Interface_C.Close_Socket (Temporaly_Service_Socket_Id);  
            Text_Io.Put_Line ("close the temporaly server.!");


        end;


        -- Couche_Haute_Msg.Client_Task.Start
        --    (Brocker_Listen_Socket_Port, Brocker_Host_Name,
        --     Listen_Socket_Port, Task_Performing_Fifo_Msg_To_Send);
        --
        --
        --
    end Init;


    procedure Put (Something : in out String; Result : out Boolean) is
        The_Msg : Socket_Defs.Msg;
    begin
        My_Utilities.Normalize (Something, The_Msg);
        Task_Performing_Fifo_Msg_To_Send.Put (The_Msg, Result);
    end Put;


    procedure Get (Something : in out String; Result : out Boolean) is
        The_Msg : Socket_Defs.Msg;
    begin
        Task_Performing_Fifo_Received_Msg.Get (The_Msg, Result);
        My_Utilities.Normalize (The_Msg, Something);
    end Get;
end Behav_Msg;

E3 Meta Data

    nblk1=7
    nid=5
    hdr6=c
        [0x00] rec0=25 rec1=00 rec2=01 rec3=00e
        [0x01] rec0=19 rec1=00 rec2=03 rec3=050
        [0x02] rec0=17 rec1=00 rec2=07 rec3=058
        [0x03] rec0=00 rec1=00 rec2=02 rec3=002
        [0x04] rec0=1f rec1=00 rec2=04 rec3=068
        [0x05] rec0=04 rec1=00 rec2=06 rec3=001
        [0x06] rec0=3e rec1=64 rec2=00 rec3=019
    tail 0x2171f61ec839c4a2a50dd 0x42a00088462063203
Free Block Chain:
  0x5: 0000  00 00 00 41 80 1b 61 6c 69 7a 65 20 28 54 68 65  ┆   A  alize (The┆