|
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: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Trans, seg_0563d4
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io; with Byte_Defs; with Utils; with Message; with Bal; with Identification; with Transport; with Transport_Defs; with Orb_Tools; package body Trans is Name_Of_Network : constant Transport_Defs.Network_Name := "TCP/IP"; Orb_Host : constant Transport_Defs.Host_Id := Transport.Local_Host (Name_Of_Network); Orb_Socket : constant Transport_Defs.Socket_Id := (10, 42); task Reception; task Emission; task body Reception is The_Mess : Message.Tmessage; The_Receive : Message.Data_String; From_Object : Byte_Defs.Byte_String (0 .. 255); Connec_Recep : Transport.Connection_Id; Status_Recep : Transport_Defs.Status_Code; Cpt : Natural; Try : Natural := 2; begin loop Transport.Open (Connec_Recep, Status_Recep, Name_Of_Network, Orb_Socket); if Transport.Is_Open (Connec_Recep) then Text_Io.Put_Line ("Receiver : connexion is open..."); else Text_Io.Put_Line ("Receiver : can't open connexion..."); Try := Try - 1; end if; exit when (Try = 0 or Transport.Is_Open (Connec_Recep)); end loop; if Try = 0 and not Transport.Is_Open (Connec_Recep) then Text_Io.Put_Line ("Receiver : failed in opening connexion"); exit; end if; loop Text_Io.Put_Line ("Receiver is waiting for a connexion ..."); while not Transport.Is_Connected (Connec_Recep) loop Transport.Connect (Connec_Recep, Status_Recep); end loop; Text_Io.Put_Line ("Receiver : Someone is connected"); loop Transport.Receive (Connec_Recep, Status_Recep, From_Object, Cpt); exit when Transport_Defs.Image (Status_Recep) = "OK"; end loop; Text_Io.Put ("Receiver : Received data : "); Bounded_String.Copy (Target => The_Receive, Source => Utils.Byte_String_To_String (From_Object) (1 .. Cpt)); Message.Unfill (Data => The_Receive, Mess => The_Mess); Text_Io.Put_Line (Bounded_String.Image (The_Receive)); Bal.Put_Rm (The_Mess); Transport.Disconnect (Connec_Recep); end loop; end Reception; task body Emission is From_Orb : Bal.Tmess_To_Send; The_Mess : Message.Data_String; Connec_Emet : Transport.Connection_Id; Status_Emet : Transport_Defs.Status_Code; Obj_Sock : Transport_Defs.Socket_Id (1 .. 2); Obj_Host : Transport_Defs.Host_Id (1 .. 4); Cpt : Natural; Try : Positive := 2; begin loop Transport.Open (Connec_Emet, Status_Emet, Name_Of_Network); if Transport.Is_Open (Connec_Emet) then Text_Io.Put_Line ("Transmiter : connexion is open..."); else Text_Io.Put_Line ("Transmiter : can't open connexion..."); Try := Try - 1; end if; exit when (Try = 0 or Transport.Is_Open (Connec_Emet)); end loop; if Try = 0 and not Transport.Is_Open (Connec_Emet) then Text_Io.Put_Line ("Transmiter : failed in opening connexion"); exit; end if; loop while Bal.Is_Empty_Mts loop delay (1.0); end loop; Bal.Get_Mts (From_Orb); Message.Fill (The_Mess, From_Orb.Mess); Text_Io.Put_Line ("Transmiter : try to contact the object located at (" & Orb_Tools.Image (From_Orb.Des.Sock) & ") ..."); Orb_Tools.Vstring_To_Host (From_Orb.Des.Host, Obj_Host); Orb_Tools.Vstring_To_Socket (From_Orb.Des.Sock, Obj_Sock); while not Transport.Is_Connected (Connec_Emet) loop Transport.Connect (Connec_Emet, Status_Emet, Obj_Host, Obj_Sock, 1.0); end loop; Message.Fill (Data => The_Mess, Mess => From_Orb.Mess); Text_Io.Put_Line ("Transmiter : object is connected..."); Transport.Transmit (Connec_Emet, Status_Emet, Utils.String_To_Byte_String (Bounded_String.Image (The_Mess)), Cpt); Text_Io.Put_Line ("Transmiter : data transmited."); Transport.Disconnect (Connec_Emet); end loop; end Emission; end Trans;
nblk1=7 nid=4 hdr6=c [0x00] rec0=29 rec1=00 rec2=01 rec3=046 [0x01] rec0=05 rec1=00 rec2=07 rec3=00e [0x02] rec0=20 rec1=00 rec2=06 rec3=014 [0x03] rec0=22 rec1=00 rec2=03 rec3=016 [0x04] rec0=1d rec1=00 rec2=02 rec3=018 [0x05] rec0=14 rec1=00 rec2=05 rec3=000 [0x06] rec0=0f rec1=00 rec2=07 rec3=001 tail 0x2176225da87c397c79aa4 0x42a00088462060003 Free Block Chain: 0x4: 0000 00 00 00 04 80 01 20 01 02 03 04 05 06 07 20 20 ┆ ┆