|
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: 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 ┆