DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ B T

⟦7c94a7885⟧ TextFile

    Length: 3931 (0xf5b)
    Types: TextFile
    Names: »B«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

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;