|
|
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: 4096 (0x1000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Put, seg_029152, separate Message
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
separate (Message)
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 := Open_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 := Connect_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 := Transmit_Failed;
return;
elsif Cnt /= Message'Length then
Status := Incomplete_Transmission;
return;
else
Status := Ok;
end if;
T.Close (Connection => C);
end Put;
nblk1=3
nid=0
hdr6=6
[0x00] rec0=23 rec1=00 rec2=01 rec3=01c
[0x01] rec0=22 rec1=00 rec2=03 rec3=01c
[0x02] rec0=05 rec1=00 rec2=02 rec3=000
tail 0x2152164b483c94b4cbd4d 0x42a00088462060003