|
|
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: 6144 (0x1800)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Treat_A_Client_Which_Do_Not_Know_The_Requested_Object_Id, seg_056907, separate Orb_Service.Request
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
separate (Orb_Service.Request)
procedure Treat_A_Client_Which_Do_Not_Know_The_Requested_Object_Id is
begin
Id_List := Object_Manager.Search_Object_Doing_Method
(Data_Base, Class, Method_N);
if not Object_Manager.Objects_Id.Is_Empty (Id_List) then
--the object_manager found an object
Task_Io.Put_Line ("un object correspond a la description ");
Object_Manager.Objects_Id.Init (Id_Iter, Id_List);
loop
The_Object_Id := Object_Manager.Objects_Id.Value (Id_Iter);
The_Object := Object_Manager.Get_Object_By_Id
(Data_Base, Parametre_Defs.Identificator
(The_Object_Id));
Object_Manager.Objects_Id.Next (Id_Iter);
Task_Io.Put_Line ("the choosen object is" &
Registrated_Object.Image (The_Object));
exit when not Registrated_Object.Is_Unknown (The_Object);
end loop;
Message.Set_Emet (Mess, Message.Get_Emet (Mess));
Message.Set_Dest (Mess, Parametre_Defs.Identificator (The_Object_Id));
Task_Io.Put_Line ("i have request from" &
Utils.Byte_String_To_String
(Byte_Defs.Byte_String (Message.Get_Emet (Mess))));
Task_Io.Put_Line ("for " &
Utils.Byte_String_To_String
(Byte_Defs.Byte_String (Message.Get_Dest (Mess))));
Object_Manager.Talk_To_Object (Data_Base => Data_Base,
Id => The_Object_Id,
Mess => Mess,
Result => Result);
if not Result then
Task_Io.Put_Line ("talk pas reussi");
Object_Manager.Set_To_Unknow (Data_Base, The_Object_Id);
Task_Io.Put_Line ("renvoie une answer bidon au demandeur");
Message.Set_Type (Mess, Parametre_Defs.Answe);
Object_Manager.Talk_To_Object
(Data_Base => Data_Base,
Id => Object_Manager.Object_Id (Message.Get_Emet (Mess)),
Mess => Mess,
Result => Result);
else
Object_Manager.Give_Work (Data_Base, The_Object_Id);
Task_Io.Put_Line ("ok request sended");
end if;
else
-- the object_manager don't found the requested method in any object
Message.Set_Emet (Mess, Message.Get_Emet (Mess));
Message.Set_Dest (Mess, Message.Get_Emet (Mess));
Task_Io.Put_Line ("renvoie une answer bidon au demandeur");
Message.Set_Type (Mess, Parametre_Defs.Answe);
Object_Manager.Talk_To_Object
(Data_Base => Data_Base,
Id => Object_Manager.Object_Id (Message.Get_Emet (Mess)),
Mess => Mess,
Result => Result);
if not Result then
Object_Manager.Set_To_Unknow
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)));
end if;
end if;
end Treat_A_Client_Which_Do_Not_Know_The_Requested_Object_Id;
nblk1=5
nid=3
hdr6=8
[0x00] rec0=15 rec1=00 rec2=01 rec3=000
[0x01] rec0=13 rec1=00 rec2=04 rec3=024
[0x02] rec0=17 rec1=00 rec2=05 rec3=012
[0x03] rec0=07 rec1=00 rec2=02 rec3=000
[0x04] rec0=01 rec1=00 rec2=03 rec3=000
tail 0x21762cdba87c489e820fd 0x42a00088462060003
Free Block Chain:
0x3: 0000 00 00 00 0b 80 05 49 64 3b 20 20 05 00 00 00 20 ┆ Id; ┆