|
|
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: 15360 (0x3c00)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Orb_Communication, seg_057d53
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Bounded_String;
with Byte_String_Io;
with Message_Storage;
with Text_Io;
with Transport_Defs;
package body Orb_Communication is
Source_Id : T_Id;
package Bs renames Bounded_String;
package Ti renames Text_Io;
Packet : V_Packet;
function Send (Msg_Rec : Messages.Obj_Msg;
Rem_Host : T_Host_Id := Ficus;
Rem_Socket : T_Socket := Orb_Socket) return Boolean is
Ok : Boolean;
begin
Messages.Packaging (Typ => Messages.Get_Type_Msg (Msg_Rec),
Content => Messages.Get_Content (Msg_Rec),
Source => Messages.Get_Source_Id (Msg_Rec),
Target => Messages.Get_Target_Id (Msg_Rec),
Order => Messages.Get_Order_Msg (Msg_Rec),
Pack => Packet);
Communication.Open_Connection (Channel_In);
Communication.Send (C => Channel_In,
V_Msg => Packet,
R_Host => Rem_Host,
R_Socket => Rem_Socket,
Try_Nb => 1,
Delaymax => Delay_Max,
Success => Ok);
Communication.Close_Connection (Channel_In);
return Ok;
end Send;
task Client is
entry Send (Msg_Rec : Messages.Obj_Msg;
Rem_Host : T_Host_Id := Ficus;
Rem_Socket : T_Socket := Orb_Socket);
end Client;
task Reception;
task body Client is
Success : Boolean;
Ok : Boolean;
begin
loop
select
accept Send (Msg_Rec : Messages.Obj_Msg;
Rem_Host : T_Host_Id := Ficus;
Rem_Socket : T_Socket := Orb_Socket) do
Messages.Packaging
(Typ => Messages.Get_Type_Msg (Msg_Rec),
Content => Messages.Get_Content (Msg_Rec),
Source => Messages.Get_Source_Id (Msg_Rec),
Target => Messages.Get_Target_Id (Msg_Rec),
Order => Messages.Get_Order_Msg (Msg_Rec),
Pack => Packet);
Communication.Open_Connection (Channel_In);
Communication.Send (C => Channel_In,
V_Msg => Packet,
R_Host => Rem_Host,
R_Socket => Rem_Socket,
Try_Nb => 1,
Delaymax => Delay_Max,
Success => Ok);
Communication.Close_Connection (Channel_In);
end Send;
end select;
end loop;
end Client;
task body Reception is
Rec : Messages.Obj_Msg;
Packet : V_Packet;
Byte_Msg : Byte_String_Io.Byte_String (0 .. Pmax - 1);
Counter : Natural;
Rec_Msg : Messages.Obj_Msg;
begin
Attente_Message:
loop
Communication.Orb_Open_Connection
(Channel_Out, Transport_Defs.Socket_Id (Orb_Socket));
Communication.Reception (Delaymax => Delay_Max,
Msg => Byte_Msg,
Count => Counter,
C => Channel_Out);
Communication.Close_Connection (Channel_Out);
if Counter > 0 then
Messages.Unpackaging (Byte_Msg, Counter, Rec_Msg);
Orb_Bal.Put_Message (Rec_Msg);
else
Text_Io.Put_Line ("reception 0 bytes");
end if;
end loop Attente_Message;
end Reception;
end Orb_Communication;
nblk1=e
nid=c
hdr6=a
[0x00] rec0=1f rec1=00 rec2=01 rec3=058
[0x01] rec0=1d rec1=00 rec2=02 rec3=04e
[0x02] rec0=14 rec1=00 rec2=0d rec3=01e
[0x03] rec0=17 rec1=00 rec2=0b rec3=034
[0x04] rec0=06 rec1=00 rec2=0a rec3=000
[0x05] rec0=12 rec1=00 rec2=0c rec3=000
[0x06] rec0=10 rec1=00 rec2=05 rec3=050
[0x07] rec0=10 rec1=00 rec2=04 rec3=06c
[0x08] rec0=10 rec1=00 rec2=03 rec3=036
[0x09] rec0=0f rec1=00 rec2=02 rec3=016
[0x0a] rec0=16 rec1=00 rec2=0b rec3=04e
[0x0b] rec0=14 rec1=00 rec2=0c rec3=034
[0x0c] rec0=0a rec1=00 rec2=0d rec3=000
[0x0d] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x217651c6e87d2807c867a 0x42a00088462060003
Free Block Chain:
0xc: 0000 00 03 00 40 80 06 73 73 61 67 65 3b 06 00 00 00 ┆ @ ssage; ┆
0x3: 0000 00 04 00 33 80 12 6e 65 20 28 22 66 69 6c 74 72 ┆ 3 ne ("filtr┆
0x4: 0000 00 05 00 2c 80 21 20 20 20 20 20 20 20 20 20 20 ┆ , ! ┆
0x5: 0000 00 06 00 38 80 08 3d 20 46 69 63 75 73 3b 08 00 ┆ 8 = Ficus; ┆
0x6: 0000 00 07 00 3d 80 2c 62 6c 69 63 61 74 69 6f 6e 2c ┆ = ,blication,┆
0x7: 0000 00 08 00 4f 80 28 20 20 20 20 20 20 20 20 20 20 ┆ O ( ┆
0x8: 0000 00 09 00 12 80 0f 20 53 6f 75 72 63 65 20 3a 20 ┆ Source : ┆
0x9: 0000 00 0e 00 27 80 24 20 53 65 6e 64 20 28 51 75 65 ┆ ' $ Send (Que┆
0xe: 0000 00 00 01 8a 80 47 20 20 20 20 20 20 20 20 20 20 ┆ G ┆