|
|
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: 24576 (0x6000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Orb_Service, seg_05670c
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Registrated_Object;
with Byte_Defs;
with Task_Io;
with Parametre, Liste_Parametre;
with Utils;
package body Orb_Service is
procedure Registration (Mess : in out Message.Object) is
Id : Object_Manager.Object_Id;
The_Mess_2_Send : Message.Object;
Result : Boolean;
begin
Object_Manager.Add_Object (Data_Base, Id, Mess, The_Mess_2_Send);
Object_Manager.Talk_To_Object (Data_Base, Id, The_Mess_2_Send, Result);
if not Result then
Task_Io.Put_Line
("problem during a client registration =>cannot talk to him");
Object_Manager.Remove_Object (D_B => Data_Base, Id => Id);
end if;
Task_Io.Put_Line ("after registration" &
Object_Manager.Image (Data_Base));
end Registration;
procedure Unregistration (Mess : in out Message.Object) is
begin
Object_Manager.Remove_Object
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)));
Task_Io.Put_Line ("after unregistration" &
Object_Manager.Image (Data_Base));
end Unregistration;
procedure Publication (Mess : in out Message.Object) is
begin
Object_Manager.Add_Method
(Data_Base,
Object_Manager.Object_Id (Message.Get_Emet (Mess)), Mess);
Task_Io.Put_Line ("after publication " &
Object_Manager.Image (Data_Base));
end Publication;
procedure Unpublication (Mess : in out Message.Object) is
begin
Object_Manager.Remove_Method
(Data_Base,
Object_Manager.Object_Id (Message.Get_Emet (Mess)), Mess);
Task_Io.Put_Line ("after unpublication " &
Object_Manager.Image (Data_Base));
end Unpublication;
procedure Subscription (Mess : in out Message.Object) is
begin
Task_Io.Put_Line ("suber" &
Utils.Byte_String_To_String
(Byte_Defs.Byte_String (Message.Get_Emet (Mess))));
Task_Io.Put_Line ("subted" &
Utils.Byte_String_To_String
(Byte_Defs.Byte_String (Message.Get_Dest (Mess))));
Object_Manager.Subscribe
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)),
Object_Manager.Object_Id (Message.Get_Dest (Mess)), Mess);
Task_Io.Put_Line ("after subscription " &
Object_Manager.Image (Data_Base));
end Subscription;
procedure Unsubscription (Mess : in out Message.Object) is
begin
Object_Manager.Unsubscribe
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)),
Object_Manager.Object_Id (Message.Get_Dest (Mess)), Mess);
Task_Io.Put_Line ("after unsubscription " &
Object_Manager.Image (Data_Base));
end Unsubscription;
procedure Filtration (Mess : in out Message.Object) is
begin
[statement]
end Filtration;
procedure Unfiltration (Mess : in out Message.Object) is
begin
[statement]
end Unfiltration;
procedure Request (Mess : in out Message.Object) is separate;
procedure Answer (Mess : in out Message.Object) is
The_Object : Registrated_Object.Object;
Method_N, Class : Parametre.Variable_String;
A_Subscripter_Id : Object_Manager.Object_Id;
Subscripters : Object_Manager.Objects_Id.S_List;
Subscripters_Iter : Object_Manager.Objects_Id.S_Iterator;
Containt : Liste_Parametre.List;
Iter : Liste_Parametre.Iterator;
Result : Boolean;
begin
Containt := Message.Get_Containt (Mess);
Liste_Parametre.Init (Iter, Containt);
Class := Liste_Parametre.Value (Iter);
Liste_Parametre.Next (Iter);
Method_N := Liste_Parametre.Value (Iter);
The_Object := Object_Manager.Get_Object_By_Id
(Data_Base, Message.Get_Dest (Mess));
Subscripters :=
Object_Manager.Get_All_Subscripter
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)),
Method_N);
if not Object_Manager.Objects_Id.Is_Empty (Subscripters) then
Task_Io.Put_Line ("there are subscriptors");
Object_Manager.Objects_Id.Init
(Iter => Subscripters_Iter, L => Subscripters);
while not Object_Manager.Objects_Id.Done (Subscripters_Iter) loop
Task_Io.Put_Line ("talk to an subter");
A_Subscripter_Id := Object_Manager.Objects_Id.Value
(Subscripters_Iter);
Object_Manager.Talk_To_Object (Data_Base => Data_Base,
Id => A_Subscripter_Id,
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;
Object_Manager.Objects_Id.Next (Subscripters_Iter);
end loop;
end if;
Object_Manager.Talk_To_Object
(Data_Base => Data_Base,
Id => Object_Manager.Object_Id (Message.Get_Dest (Mess)),
Mess => Mess,
Result => Result);
if not Result then
Object_Manager.Set_To_Unknow
(Data_Base, Object_Manager.Object_Id (Message.Get_Dest (Mess)));
end if;
Object_Manager.Work_Finished
(Data_Base, Object_Manager.Object_Id (Message.Get_Emet (Mess)));
Task_Io.Put_Line ("after answer " & Object_Manager.Image (Data_Base));
end Answer;
procedure Forward (Mess : in out Message.Object) is
begin
[statement]
end Forward;
end Orb_Service;
nblk1=17
nid=f
hdr6=e
[0x00] rec0=1b rec1=00 rec2=01 rec3=056
[0x01] rec0=1d rec1=00 rec2=0b rec3=000
[0x02] rec0=19 rec1=00 rec2=09 rec3=064
[0x03] rec0=20 rec1=00 rec2=0c rec3=04c
[0x04] rec0=0f rec1=00 rec2=0d rec3=04c
[0x05] rec0=13 rec1=00 rec2=15 rec3=086
[0x06] rec0=10 rec1=00 rec2=12 rec3=000
[0x07] rec0=15 rec1=00 rec2=0f rec3=000
[0x08] rec0=16 rec1=00 rec2=0f rec3=000
[0x09] rec0=09 rec1=00 rec2=0d rec3=000
[0x0a] rec0=18 rec1=00 rec2=0a rec3=016
[0x0b] rec0=09 rec1=00 rec2=11 rec3=048
[0x0c] rec0=12 rec1=00 rec2=12 rec3=058
[0x0d] rec0=21 rec1=00 rec2=0f rec3=000
[0x0e] rec0=21 rec1=00 rec2=0f rec3=000
[0x0f] rec0=0e rec1=00 rec2=16 rec3=000
[0x10] rec0=10 rec1=00 rec2=11 rec3=016
[0x11] rec0=24 rec1=00 rec2=12 rec3=034
[0x12] rec0=14 rec1=00 rec2=13 rec3=076
[0x13] rec0=14 rec1=00 rec2=14 rec3=008
[0x14] rec0=17 rec1=00 rec2=15 rec3=060
[0x15] rec0=1d rec1=00 rec2=16 rec3=022
[0x16] rec0=0a rec1=00 rec2=17 rec3=000
tail 0x217627db287c4552a19ac 0x42a00088462060003
Free Block Chain:
0xf: 0000 00 0a 02 92 80 24 62 6a 65 63 74 5f 49 64 20 28 ┆ $bject_Id (┆
0xa: 0000 00 16 01 2a 80 05 2e 49 6e 69 74 05 00 3e 20 20 ┆ * .Init > ┆
0x16: 0000 00 10 00 16 80 13 20 20 20 20 20 20 20 20 20 20 ┆ ┆
0x10: 0000 00 0e 03 fc 80 1e 62 6a 65 63 74 20 28 44 61 74 ┆ bject (Dat┆
0xe: 0000 00 13 03 fc 80 0c 61 6e 74 65 64 20 6d 65 74 68 ┆ anted meth┆
0x13: 0000 00 11 03 fc 80 06 63 74 29 20 69 73 06 00 28 20 ┆ ct) is ( ┆
0x11: 0000 00 14 01 73 80 0e 75 6c 74 20 3a 20 42 6f 6f 6c ┆ s ult : Bool┆
0x14: 0000 00 07 03 fc 80 2c 61 67 65 72 2e 54 61 6c 6b 5f ┆ ,ager.Talk_┆
0x7: 0000 00 08 00 63 80 27 20 20 20 20 20 20 20 20 20 20 ┆ c ' ┆
0x8: 0000 00 05 03 fc 80 32 20 20 20 20 20 20 20 48 6f 73 ┆ 2 Hos┆
0x5: 0000 00 02 00 3e 80 0c 73 20 74 65 78 74 5f 69 6f 22 ┆ > s text_io"┆
0x2: 0000 00 17 00 aa 80 43 20 20 20 20 20 20 20 20 20 20 ┆ C ┆
0x17: 0000 00 06 01 66 80 2b 20 20 20 20 20 20 20 20 20 20 ┆ f + ┆
0x6: 0000 00 04 01 67 80 28 52 65 67 69 73 74 72 61 74 69 ┆ g (Registrati┆
0x4: 0000 00 03 03 fc 80 23 20 20 20 20 20 20 20 4f 62 6a ┆ # Obj┆
0x3: 0000 00 00 03 fc 80 2d 74 72 61 74 65 64 5f 4f 62 6a ┆ -trated_Obj┆