|
|
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 - metrics - 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 ; ┆