|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 1944 (0x798)
Types: TextFile
Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
└─⟦124ff5788⟧ »DATA«
└─⟦this⟧
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
└─⟦129cab021⟧ »DATA«
└─⟦this⟧
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
└─⟦6f12a12be⟧ »DATA«
└─⟦this⟧
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
└─⟦d65440be7⟧ »DATA«
└─⟦this⟧
separate (Message_Transport)
procedure Put (Message : String;
Remote_Host : String;
Remote_Socket : Socket;
Number_Of_Retry : Positive := 1;
Retry_Delay : Duration := 0.1;
Status : out Status_Code) is
C : T.Connection_Id;
S : T_Defs.Status_Code;
N : constant T_Defs.Network_Name := "TCP/IP";
Lsid : constant Transport_Defs.Socket_Id := Transport_Defs.Null_Socket_Id;
Rsid : constant Transport_Defs.Socket_Id :=
(Byte_Defs.Byte (Remote_Socket / 256),
Byte_Defs.Byte (Remote_Socket mod 256));
Rh : constant Transport_Defs.Host_Id :=
Transport_Name.Host_To_Host_Id (Remote_Host);
Cnt : Natural;
begin
T.Open (Connection => C, Status => S, Network => N, Local_Socket => Lsid);
if S /= Transport_Defs.Ok then
Status := Connection_Failed;
return;
end if;
for I in 1 .. Number_Of_Retry loop
T.Connect (Connection => C,
Status => S,
Remote_Host => Rh,
Remote_Socket => Rsid,
Max_Wait => Duration'Last);
if S = Transport_Defs.Ok then
exit; -- We are connected and will try to transmit
elsif I = Number_Of_Retry then
Status := Connection_Failed;
T.Close (Connection => C);
return;
end if;
delay Retry_Delay;
end loop;
T.Transmit (Connection => C,
Status => S,
Data => Utils.String_To_Byte_String (Message),
Count => Cnt,
Max_Wait => Duration'Last,
More => False);
if S /= Transport_Defs.Ok then
Status := Connection_Failed;
return;
elsif Cnt /= Message'Length then
Status := Incomplete_Transmission;
return;
else
Status := Ok;
end if;
T.Close (Connection => C);
end Put;