|
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 - 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┆