|
|
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: 9216 (0x2400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Date_Server, seg_056625
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Constant_Start_End, All_String;
with Com_Defs;
with T_Message, T_Status;
with Time_Utilities;
with Text_Manager;
package body Date_Server is
My_Receive_Frame : My_Message.T_Frame;
My_Send_Frame : My_Message.T_Frame;
My_Status : Boolean := False;
Stop : Boolean := False;
My_Appli_Number : Com_Defs.Com_Number;
Orb_Appli_Number : constant Com_Defs.Com_Number := 0;
My_Quest_Number : Com_Defs.Com_Number :=
0; -- message qui ne recoit pas de reponse
My_Data_To_Send : Com_Defs.V_String;
My_Adress_String_And_Apply_Number :
All_String.Adress_String_And_Apply_Number;
My_Adress_String : All_String.Adress_String;
My_Machine_Name, My_Adress_Ip : Com_Defs.V_String;
Null_Data : Com_Defs.V_String := Com_Defs.Value ("");
My_Integer_Type_Of_Message : Integer;
My_Integer_Type_Of_Status : Integer;
My_Type_Of_Message : T_Message.T_Mess := T_Message.Response;
My_Type_Of_Status : T_Status.T_State := T_Status.Server_To_Orb;
My_Contrat : String (1 .. 34) := "calendar/date/give_the_date/0/null";
My_V_String_Data : Com_Defs.V_String;
procedure Init is
begin
Text_Manager.Text.Put_Line ("server : init");
My_Message.Init (My_Appli_Number, My_Machine_Name,
My_Adress_Ip, My_Status);
Text_Manager.Text.Put_Line ("server : " &
Integer'Image (My_Appli_Number));
Text_Manager.Text.Put_Line ("server : " & Boolean'Image (My_Status));
Text_Manager.Text.Put_Line ("server : " &
Com_Defs.Image (My_Machine_Name) & " " &
Com_Defs.Image (My_Adress_Ip));
My_Message.Init_T_Frame (My_Send_Frame, My_Adress_Ip,
My_Appli_Number, My_Quest_Number);
end Init;
task body D_Server is
begin
Init;
-- REGISTRATION
My_Message.Init_Data_Message (My_Machine_Name, My_Send_Frame);
My_Message.Send (Orb_Appli_Number, Com_Defs.Orb_Name_Machine_V_String,
T_Message.Registration, My_Type_Of_Status,
My_Send_Frame, My_Status);
My_Message.Put_Frame (My_Send_Frame);
-- PUBLICATION
My_Message.Remove_Data (My_Send_Frame);
My_V_String_Data := Com_Defs.Value (My_Contrat);
My_Message.Init_Data_Message (My_V_String_Data, My_Send_Frame);
My_Message.Send (Orb_Appli_Number, Com_Defs.Orb_Name_Machine_V_String,
T_Message.Publication, My_Type_Of_Status,
My_Send_Frame, My_Status);
My_Message.Put_Frame (My_Send_Frame);
loop
loop
delay (30.0);
My_Message.Receive (My_Appli_Number,
My_Receive_Frame, My_Status);
Text_Manager.Text.Put_Line ("server : test receive");
exit when My_Status = True;
end loop;
Stop := True;
-- on sortira de la boucle principale apres avoir recu un message
-- de maniere a simuler un Unpublication et un Unregistration
Text_Manager.Text.Put_Line ("server : receive something");
My_Message.Put_Frame (My_Receive_Frame);
My_Integer_Type_Of_Message :=
My_Message.Read_Type_Of_Message (My_Receive_Frame);
My_Message.Copy (My_Send_Frame, My_Receive_Frame);
-- My_Message.Remove_Data (My_Send_Frame);
My_Message.Put_Frame (My_Send_Frame);
case My_Integer_Type_Of_Message is
when T_Message.T_Mess'Pos (T_Message.Request_Service) =>
begin
My_Type_Of_Message := T_Message.Response;
My_V_String_Data :=
Com_Defs.Value
(Time_Utilities.Image
(Time_Utilities.Get_Time,
Contents => Time_Utilities.Date_Only));
My_Message.Init_Data_Message
(My_V_String_Data, My_Send_Frame);
end;
when others =>
Text_Manager.Text.Put_Line
("server : type of message is unknown");
end case;
My_Integer_Type_Of_Status :=
My_Message.Read_Type_Of_Status (My_Receive_Frame);
case My_Integer_Type_Of_Status is
when T_Status.T_State'Pos (T_Status.Orb_To_Server) =>
begin
My_Type_Of_Status := T_Status.Server_To_Orb;
end;
when others =>
Text_Manager.Text.Put_Line
("server : type of status is unknown");
end case;
My_Message.Exchange_Source_Destination (My_Send_Frame);
My_Message.Put_Frame (My_Send_Frame);
My_Message.Send (Orb_Appli_Number,
Com_Defs.Orb_Name_Machine_V_String,
My_Type_Of_Message,
My_Type_Of_Status,
My_Send_Frame, My_Status);
My_Message.Put_Frame (My_Send_Frame);
exit when Stop;
end loop;
My_Message.Init_T_Frame (My_Send_Frame, My_Adress_Ip,
My_Appli_Number, My_Quest_Number);
-- UNPUBLICATION
My_Message.Remove_Data (My_Send_Frame);
My_V_String_Data := Com_Defs.Value (My_Contrat);
My_Message.Init_Data_Message (My_V_String_Data, My_Send_Frame);
My_Message.Send (Orb_Appli_Number, Com_Defs.Orb_Name_Machine_V_String,
T_Message.Unpublication, My_Type_Of_Status,
My_Send_Frame, My_Status);
My_Message.Put_Frame (My_Send_Frame);
-- UNREGISTRATION
My_Message.Init_Data_Message (Null_Data, My_Send_Frame);
My_Message.Send (Orb_Appli_Number, Com_Defs.Orb_Name_Machine_V_String,
T_Message.Unregistration, My_Type_Of_Status,
My_Send_Frame, My_Status);
My_Message.Put_Frame (My_Send_Frame);
-- On desalloue notre numero d'application
My_Message.Remove (My_Appli_Number);
end D_Server;
end Date_Server;
nblk1=8
nid=0
hdr6=10
[0x00] rec0=1e rec1=00 rec2=01 rec3=018
[0x01] rec0=1a rec1=00 rec2=06 rec3=016
[0x02] rec0=17 rec1=00 rec2=05 rec3=010
[0x03] rec0=18 rec1=00 rec2=07 rec3=024
[0x04] rec0=00 rec1=00 rec2=04 rec3=01e
[0x05] rec0=16 rec1=00 rec2=03 rec3=064
[0x06] rec0=16 rec1=00 rec2=02 rec3=066
[0x07] rec0=10 rec1=00 rec2=08 rec3=000
tail 0x217625d2287c448ecd686 0x42a00088462060003