|
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: 11264 (0x2c00) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Date_Test, seg_04bcb5
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦5a81ac88f⟧ »Space Info Vol 1« └─⟦this⟧
with Behavior; with Identifier; with Method; with Message_New; with Message_Transport; with Parameter; with Signature; with Transport; with Transport_Defs; with Text_Io; with Message_Transport; use Text_Io; package body Date_Test is procedure Process_Message (Stream : Message_Transport.Stream_Id; Message : Message_New.Object); procedure Register (Host : String; Socket : Message_Transport.Socket; Stream : out Message_Transport.Stream_Id); procedure Transport_Start is new Message_Transport.Start_Server (Register_Service => Register, Service_Identified => Identified, Ready_To_Receive => Ready_To_Receive, Receive_Callback => Process_Message); task Tx is entry Start; -- entry Go; end Tx; procedure Request (M : Message_New.Object; S : Message_Transport.Stream_Id; Addresse : in out Natural) is separate; procedure Notification (M : Message_New.Object; S : Message_Transport.Stream_Id; Address : in out Natural) is separate; procedure Register (Host : String; Socket : Message_Transport.Socket; Stream : out Message_Transport.Stream_Id) is Status : Message_Transport.Status_Code; Stream_Reg : Message_Transport.Stream_Id; Request_Nul : Natural := 0; Port : Natural := 0; use Message_Transport; begin Text_Io.Put_Line ("avant Message_Transport.Create du stream"); Text_Io.Put_Line ("remote_host = " & Identifier.Get_Host (Identifier.Broker)); Text_Io.Put_Line ("remote_Socket = " & Integer'Image (Integer (Identifier.Get_Socket (Identifier.Broker)))); Message_Transport.Create (Remote_Host => Identifier.Get_Host (Identifier.Broker), Remote_Socket => Identifier.Get_Socket (Identifier.Broker), Number_Of_Retry => 10, Retry_Delay => 0.1, Stream => Stream_Reg, Status => Status); Text_Io.Put_Line ("LOCAL_SOCKET = " & Natural'Image (Transport_Defs.Hash (Transport.Local_Socket (Message_Transport. Identifie_Connection (Stream_Reg))))); Port := Transport_Defs.Hash (Transport.Local_Socket (Message_Transport.Identifie_Connection (Stream_Reg))); Text_Io.Put_Line ("STREAM_REG = " & Natural'Image (Message_Transport.Hash (Stream_Reg))); Text_Io.Put_Line ("envoi registration"); Message_Transport.Put (Stream => Stream_Reg, Message => Standard.Message_New.Image (Message_New.Create (Class => Message_New.Registration, Addressee => Identifier.Hash (Identifier.Broker), Sender => 0, Request => Request_Nul, Method => "registration", Parameter1_Name => "host", Parameter1_Class => "string", Parameter1_Value => "ancolie", Parameter2_Name => "socket", Parameter2_Class => "string", Parameter2_Value => "2605")), Status => Status); Text_Io.Put_Line ("REGISTRATION TERMINEE & STREAM_REG = " & Natural'Image (Message_Transport.Hash (Stream_Reg))); if Status /= Message_Transport.Ok then Text_Io.Put_Line ("registration_error"); -- raise Not_Registered_Error; end if; Stream := Stream_Reg; end Register; task body Tx is Status : Message_Transport.Status_Code; Request_Nul : Natural := 0; Stream_Reg : Message_Transport.Stream_Id; This : Identifier.Object; M : Message_New.Object; Port : Natural; S : Message_Transport.Stream_Id; begin accept Start; -- accept Go; -- we have been registered, and can publish declare begin Register_Service (Stream => Stream_Reg); -- Process_Message (S, M); Port := Transport_Defs.Hash (Transport.Local_Socket (Message_Transport.Identifie_Connection (Stream_Reg))); Text_Io.Put_Line (" PORT => " & Natural'Image (Port)); Message_Transport.Put (Stream => Stream_Reg, Message => Message_New.Image (Message_New => Message_New.Create (Class => Message_New.Publication, Addressee => Identifier.Hash (Id => Identifier.Broker), Sender => 2, -- Sender => Port, Request => 0, Method => "date", Parameter_Name => "date", Parameter_Class => "string", Parameter_Value => Parameter.Void)), Status => Status); exception when others => Put_Line ("ca a foire"); end; loop delay Duration'Last; end loop; -- end; end Tx; procedure Process_Message (S : Message_Transport.Stream_Id; M : Message_New.Object) is use Message_New; The_Found, The_Found_1 : Message_Transport.Stream_Id; Mes : Message_New.Object; Iter : Transport.Connection_Id_Iterator; Found : Boolean := False; Connection : Transport.Connection_Id; Connection_Natural : Natural; Addr : Natural; Id : Natural := 0; begin Put_Line ("--- PROCESSING MESSAGE => " & Message_New.Image (M)); case Message_New.Get_Class (M) is when Message_New.Request => Request (M, S, Addr); when Message_New.Notification => Notification (M, S, Addr); when others => null; end case; Id := Addr; end Process_Message; procedure Start is begin Tx.Start; end Start; end Date_Test;
nblk1=a nid=5 hdr6=12 [0x00] rec0=20 rec1=00 rec2=01 rec3=00c [0x01] rec0=00 rec1=00 rec2=02 rec3=006 [0x02] rec0=1b rec1=00 rec2=0a rec3=032 [0x03] rec0=0d rec1=00 rec2=04 rec3=026 [0x04] rec0=13 rec1=00 rec2=07 rec3=04c [0x05] rec0=1b rec1=00 rec2=09 rec3=020 [0x06] rec0=1b rec1=00 rec2=06 rec3=01e [0x07] rec0=19 rec1=00 rec2=08 rec3=038 [0x08] rec0=1f rec1=00 rec2=03 rec3=000 [0x09] rec0=49 rec1=07 rec2=ac rec3=3b4 tail 0x21549053c868a87d3caab 0x42a00088462060003 Free Block Chain: 0x5: 0000 00 00 02 54 80 3b 20 20 20 20 20 20 20 20 20 20 ┆ T ; ┆