|
|
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 Server_Object, seg_055a67, seg_05620f
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Answers_Array;
with Bal;
with Bls_Constant;
with Parametre_Defs;
with Parametre;
with Bounded_String;
with Liste_Parametre;
with Message;
with Display_Mess;
with Channel_Operator;
with My_Channel_User;
with String_Utilities;
with Task_Io;
package body Server_Object is
My_Channel : My_Channel_User.Object;
task T_Server_Object is
entry Dispose;
end T_Server_Object;
procedure Dispose is
begin
T_Server_Object.Dispose;
end Dispose;
task body T_Server_Object is
Mess : Message.Object;
Mess_Ret : Message.Object;
Typ : Parametre_Defs.Message_Type;
My_List : Liste_Parametre.List;
My_List_Ret : Liste_Parametre.List;
My_Index : Integer;
My_Class : Parametre.Variable_String;
My_Method : Parametre.Variable_String;
Result : Boolean;
Continue : Boolean := True;
begin
Task_Io.Put_Line ("debut de la partie serveur de l objet");
loop
select
accept Dispose do
Continue := False;
end Dispose;
else
if not Bal.Is_Empty then
Bal.Get (Mess);
Task_Io.Put_Line
("le serveur de l objet a recu quelque chose");
Typ := Message.Get_Type (Mess);
My_List := Message.Get_Containt (Mess);
My_Class := Liste_Parametre.First (My_List);
My_List := Liste_Parametre.Rest (My_List);
My_Method := Liste_Parametre.First (My_List);
My_List := Liste_Parametre.Rest (My_List);
My_Index := Integer'Value (String
(Message.Get_Number (Mess)));
Display_Mess.Get_Type (Mess);
case Typ is
when Parametre_Defs.Answe =>
Task_Io.Put_Line
("le serveur de l objet a une reponse");
Task_Io.Put_Line ("index reponse" &
Integer'Image (My_Index));
Answers_Array.Put
(Answers_Array.Index (My_Index),
Message.Get_Emet (Mess), My_List);
Task_Io.Put_Line ("fin pour reponse");
when Parametre_Defs.Subsc =>
Subscription_Treatement
(Message.Get_Emet (Mess),
Bounded_String.Image (My_Class),
Bounded_String.Image (My_Method), My_List);
when Parametre_Defs.Reque =>
Task_Io.Put_Line
("le serveur de l objet a recu un request");
Task_Io.Put_Line ("index de request est" &
Integer'Image (My_Index));
My_List_Ret := Liste_Parametre.Make
(My_Class, My_List_Ret);
My_List_Ret := Liste_Parametre.Make
(My_Method, My_List_Ret);
Server_Work (Bounded_String.Image (My_Method),
My_List, My_List_Ret);
Task_Io.Put_Line
("le serveur va contruire la reponse");
Task_Io.Put_Line ("la liste du serveur est prete");
Message.Create
(Mess_Ret, Message.Get_Dest (Mess),
Message.Get_Emet (Mess), Parametre_Defs.Answe,
Parametre_Defs.Message_Number
(Integer'Image (My_Index)), My_List_Ret);
Task_Io.Put_Line ("le message de reponse est cree");
My_Channel_User.Init
(My_Channel, Bls_Constant.Orb_Socket,
Bls_Constant.Orb_Host, Result);
Task_Io.Put_Line ("init channel dans serveur ok");
if Result then
Message.Send (Mess_Ret, My_Channel);
end if;
Task_Io.Put_Line ("reponse est envoyee");
My_Channel_User.Close (My_Channel);
when others =>
null;
end case;
end if;
end select;
exit when not Continue;
end loop;
end T_Server_Object;
end Server_Object;
nblk1=7
nid=6
hdr6=c
[0x00] rec0=27 rec1=00 rec2=01 rec3=050
[0x01] rec0=16 rec1=00 rec2=02 rec3=02e
[0x02] rec0=10 rec1=00 rec2=07 rec3=070
[0x03] rec0=12 rec1=00 rec2=03 rec3=022
[0x04] rec0=15 rec1=00 rec2=05 rec3=02c
[0x05] rec0=05 rec1=00 rec2=04 rec3=000
[0x06] rec0=68 rec1=5c rec2=00 rec3=000
tail 0x217608f2887bf595b7b24 0x42a00088462060003
Free Block Chain:
0x6: 0000 00 00 02 7a 80 31 20 20 20 20 20 28 22 6c 65 20 ┆ z 1 ("le ┆