|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Umps_Message, seg_026d3c
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Behavior_Link_Layer; with Mailbox_Msg_To_Send; with Mailbox_Received_Msg; with My_String; with Physical_Layer; with Protocol; with Socket_Defs; with Socket_Port; with Text_Io; with Umps_Utilities; package body Umps_Message is -- Create the tasks witch controlled the fifo where are stocked temporary the messages : Task_Performing_Mailbox_Received_Msg : Mailbox_Received_Msg.Access_Task_Mailbox := new Mailbox_Received_Msg.Task_Mailbox; Task_Performing_Mailbox_Msg_To_Send : Mailbox_Msg_To_Send.Access_Task_Mailbox := new Mailbox_Msg_To_Send.Task_Mailbox; procedure Init is The_Local_Listen_Socket_Port : Socket_Port.Object; The_Broker_Listen_Socket_Port : Socket_Port.Object; The_Broker_Host_Name : My_String.Object; The_Broker_Connection_Socket_Id : Socket_Defs.Socket_Id; The_Msg_Asking_A_Server_Port_Number : My_String.Object; The_Result : Boolean; The_Number_Of_Caracteres_Received : Integer; -- for the tests : Default_Brocker_Host_Name : constant String := "belladone"; begin -- Read "parameters" file to find the Brocker Listen socket port : -- TO CHANGE .... The_Broker_Listen_Socket_Port := Socket_Port.Create (9860); The_Broker_Host_Name := My_String.Object'(The_Size => Default_Brocker_Host_Name'Length, The_String => (others => ' ')); The_Broker_Host_Name.The_String := Default_Brocker_Host_Name; -- .... TO CHANGE !!! -- Establish a connection with the broker to ask a number : Text_Io.Put ("Try to establish a connection with " & The_Broker_Host_Name.The_String & "..."); The_Broker_Connection_Socket_Id := Physical_Layer.Join_Server (The_Broker_Host_Name, The_Broker_Listen_Socket_Port); Text_Io.Put_Line ("to ask a socket port number."); The_Local_Listen_Socket_Port := Protocol.Ask_A_Behavior_Socket_Port (The_Broker_Connection_Socket_Id); Text_Io.Put_Line ("I got my number."); -- I received a socket port for my server so I can start it ! Behavior_Link_Layer.Server.Start (The_Local_Listen_Socket_Port, Task_Performing_Mailbox_Received_Msg); Text_Io.Put_Line ("The Behavior server started."); Physical_Layer.Close_Socket (The_Broker_Connection_Socket_Id); Behavior_Link_Layer.Client.Start (The_Broker_Listen_Socket_Port, The_Broker_Host_Name, Task_Performing_Mailbox_Msg_To_Send); end Init; procedure Put (Something : in out String; Result : out Boolean) is The_Msg_To_Send : My_String.Object; begin The_Msg_To_Send := My_String.Object'(The_Size => Something'Length, The_String => (others => ' ')); The_Msg_To_Send.The_String := Something; Task_Performing_Mailbox_Msg_To_Send.Put (The_Msg_To_Send, Result); end Put; procedure Get (Something : in out String; Number_Of_Characters_Received : out Natural; Result : in out Boolean) is Received_Msg : My_String.Object; begin Task_Performing_Mailbox_Received_Msg.Get (Received_Msg, Result); if Result = True then Something := Umps_Utilities.Normalize (Received_Msg.The_String, Something'Length); Number_Of_Characters_Received := Received_Msg.The_Size; end if; end Get; end Umps_Message;
nblk1=7 nid=2 hdr6=a [0x00] rec0=23 rec1=00 rec2=01 rec3=064 [0x01] rec0=1a rec1=00 rec2=07 rec3=052 [0x02] rec0=00 rec1=00 rec2=05 rec3=016 [0x03] rec0=1a rec1=00 rec2=04 rec3=02a [0x04] rec0=19 rec1=00 rec2=06 rec3=000 [0x05] rec0=09 rec1=00 rec2=02 rec3=000 [0x06] rec0=04 rec1=00 rec2=05 rec3=001 tail 0x21720f5e883aa4e7c2d70 0x42a0008846207f403 Free Block Chain: 0x2: 0000 00 03 01 94 80 2e 65 73 75 6c 74 20 20 20 20 20 ┆ .esult ┆ 0x3: 0000 00 00 03 fc 80 2f 5f 48 6f 73 74 5f 4e 61 6d 65 ┆ /_Host_Name┆