|
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: 72704 (0x11c00) Types: Ada Source Notes: 03_class, FILE, Long Ada Source, R1k_Segment, e3_tag, package body Master_Orb, seg_056fd0
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with My_Set_Of_Adress, Set_Of_Fil_Observ; with All_String, Set_Method; with T_Message, T_Status; with Constant_Start_End; with Com_Defs, The_Contrats; with Conversion, Text_Manager; package body Master_Orb is task body Object_Request_Broker is My_Contrat : The_Contrats.Set_Of_Objects.Set; My_Method_Array : Set_Method.Method_Array; My_Contrat_Iterator : The_Contrats.Contrat_Iterator; My_Contrat_Array : The_Contrats.Contrat_Array; Local_Contrat : The_Contrats.Contrat; Set_Of_Client : My_Set_Of_Adress.Set_Of_Adress.Set; Set_Of_Server : My_Set_Of_Adress.Set_Of_Adress.Set; Set_Of_Filter : Set_Of_Fil_Observ.My_Set_Of_Fil_Ob.Set; Set_Of_Observer : Set_Of_Fil_Observ.My_Set_Of_Fil_Ob.Set; My_Receive_Frame : The_Message.T_Frame; My_Send_Frame : The_Message.T_Frame; My_Status : Boolean := False; Status : Boolean := False; Status1 : Boolean := False; My_Appli_Number : Com_Defs.Com_Number := 0; My_Quest_Number : Com_Defs.Com_Number := 0; Orb_Appli_Number : Com_Defs.Com_Number := 0; My_Data_To_Send : Com_Defs.V_String; My_Receive_Data : Com_Defs.V_String; My_Adress_String_And_Apply_Number, My_Adress_String_And_Apply_Number1, My_Adress_String_And_Apply_Number2, My_Adress_String_And_Apply_Number3 : All_String.Adress_String_And_Apply_Number; Orb_Adress : constant All_String.Adress_String_And_Apply_Number := "0000000000000000"; My_Adress_String : All_String.Adress_String; My_Internet_Adress, My_Host_Name, My_Source_Apply_Number, My_Specif : Com_Defs.V_String; My_Frame_Length : Natural; My_Integer_Type_Of_Message : Integer; My_Integer_Type_Of_Status : Integer; My_Type_Of_Message : T_Message.T_Mess; My_Type_Of_Status : T_Status.T_State; My_Data_Iterator : The_Message.Data_Iterator; The_Class_Name, The_Object_Name, The_Method_Name, The_Parameters, The_Number_Of_Parameter : Com_Defs.V_String; procedure Error is begin Text_Manager.Text.Put_Line ("ORB : Entry_Error"); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); The_Message.Next_Data (My_Data_Iterator); My_Receive_Data := The_Message.Value_Data (My_Data_Iterator); Text_Manager.Text.Put_Line ("Orb : The error message is : " & Com_Defs.Image (My_Receive_Data)); end Error; procedure Registration is begin The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); The_Message.Next_Data (My_Data_Iterator); My_Host_Name := The_Message.Value_Data (My_Data_Iterator); My_Source_Apply_Number := The_Message.Value (The_Message.Read_Source_Apply_Number (My_Receive_Frame)); case My_Integer_Type_Of_Status is when T_Status.T_State'Pos (T_Status.Client_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a client was registred"); My_Set_Of_Adress.Add_To (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number, This_Machine => My_Host_Name, This_Appli_Number => My_Source_Apply_Number); if My_Set_Of_Adress.Contains_This_Adress (Set_Of_Client, My_Adress_String_And_Apply_Number) then Text_Manager.Text.Put_Line ("ORB : add client is OK"); else Text_Manager.Text.Put_Line ("ORB : add client isn't OK"); end if; end; when T_Status.T_State'Pos (T_Status.Server_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a server was registred"); My_Set_Of_Adress.Add_To (This_Set => Set_Of_Server, This_Adress => My_Adress_String_And_Apply_Number, This_Machine => My_Host_Name, This_Appli_Number => My_Source_Apply_Number); if My_Set_Of_Adress.Contains_This_Adress (Set_Of_Server, My_Adress_String_And_Apply_Number) then Text_Manager.Text.Put_Line ("ORB : add server is OK"); else Text_Manager.Text.Put_Line ("ORB : add server isn't OK"); end if; end; when T_Status.T_State'Pos (T_Status.Filter_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a filter was registred"); Set_Of_Fil_Observ.Add_To (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number, This_Machine => My_Host_Name, This_Appli_Number => My_Source_Apply_Number); if Set_Of_Fil_Observ.Contains_This_Adress (Set_Of_Filter, My_Adress_String_And_Apply_Number) then Text_Manager.Text.Put_Line ("ORB : add filter is OK"); else Text_Manager.Text.Put_Line ("ORB : add filter isn't OK"); end if; end; when T_Status.T_State'Pos (T_Status.Observer_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : an observer was registred"); Set_Of_Fil_Observ.Add_To (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number, This_Machine => My_Host_Name, This_Appli_Number => My_Source_Apply_Number); if Set_Of_Fil_Observ.Contains_This_Adress (Set_Of_Observer, My_Adress_String_And_Apply_Number) then Text_Manager.Text.Put_Line ("ORB : add observer is OK"); else Text_Manager.Text.Put_Line ("ORB : add observer isn't OK"); end if; end; when others => Text_Manager.Text.Put_Line ("ORB : Registration : type of status is unknown"); end case; end Registration; procedure Unregistration is begin case My_Integer_Type_Of_Status is when T_Status.T_State'Pos (T_Status.Client_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a client was unregistred"); My_Set_Of_Adress.Delete_To (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number); end; when T_Status.T_State'Pos (T_Status.Server_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a server was unregistred"); My_Set_Of_Adress.Delete_To (This_Set => Set_Of_Server, This_Adress => My_Adress_String_And_Apply_Number); end; when T_Status.T_State'Pos (T_Status.Filter_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : a filter was unregistred"); Set_Of_Fil_Observ.Delete_To (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number); end; when T_Status.T_State'Pos (T_Status.Observer_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : an observer was unregistred"); Set_Of_Fil_Observ.Delete_To (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number); end; when others => Text_Manager.Text.Put_Line ("ORB : Unregistration : type of status is unknown"); end case; end Unregistration; procedure Query is begin Text_Manager.Text.Put_Line ("ORB : Entry_Query"); -- No treatment end Query; procedure Request_Method is begin Text_Manager.Text.Put_Line ("ORB : Entry_Request_Method"); My_Adress_String_And_Apply_Number1 := The_Message.Read_Source_Adress_Internet_And_Apply_Number (My_Receive_Frame); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); The_Message.Next_Data (My_Data_Iterator); The_Class_Name := The_Message.Value_Data (My_Data_Iterator); The_Message.Next_Data (My_Data_Iterator); The_Object_Name := The_Message.Value_Data (My_Data_Iterator); Text_Manager.Text.Put_Line ("ORB : Class_Name requested is : " & Com_Defs.Image (The_Class_Name)); Text_Manager.Text.Put_Line ("ORB : Object_Name requested is : " & Com_Defs.Image (The_Object_Name)); The_Message.Copy (My_Send_Frame, My_Receive_Frame); The_Message.Exchange_Source_Destination (My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Client, My_Send_Frame); The_Message.Remove_Data (My_Send_Frame); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number1, Answer_In => My_Host_Name); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number1); if The_Contrats.Find_This_Object (My_Contrat, The_Class_Name, The_Object_Name) then Text_Manager.Text.Put_Line ("ORB : Methods has been found"); The_Contrats.Extract_All_Methods (My_Contrat, The_Class_Name, The_Object_Name, My_Contrat_Array); The_Contrats.Init (My_Contrat_Iterator, My_Contrat_Array); The_Message.Init_Type_Of_Message (T_Message.Response, My_Send_Frame); while (not The_Contrats.Done (My_Contrat_Iterator)) loop Local_Contrat := The_Contrats.Value (My_Contrat_Iterator); -- Text_Manager.Text.Put_Line -- ("Local_Contrat.class_name : " & -- Com_Defs.Image (Local_Contrat.Class_Name)); -- Text_Manager.Text.Put_Line -- ("Local_Contrat.object_name : " & -- Com_Defs.Image (Local_Contrat.Object_Name)); -- Text_Manager.Text.Put_Line -- ("Local_Contrat.method_name : " & -- Com_Defs.Image (Local_Contrat.Method_Name)); -- Text_Manager.Text.Put_Line -- ("Local_Contrat.parameter : " & -- Com_Defs.Image (Local_Contrat.Parameter)); -- Text_Manager.Text.Put_Line -- ("Local_Contrat.number : " & -- Com_Defs.Image (Local_Contrat.Number)); The_Message.Init_Data_Message (Local_Contrat.Class_Name, My_Send_Frame); The_Message.Init_Data_Message (The_Message.Value ("/"), My_Send_Frame); The_Message.Init_Data_Message (Local_Contrat.Object_Name, My_Send_Frame); The_Message.Init_Data_Message (The_Message.Value ("/"), My_Send_Frame); The_Message.Init_Data_Message (Local_Contrat.Method_Name, My_Send_Frame); The_Message.Init_Data_Message (The_Message.Value ("/"), My_Send_Frame); The_Message.Init_Data_Message (Local_Contrat.Number, My_Send_Frame); The_Message.Init_Data_Message (The_Message.Value ("/"), My_Send_Frame); The_Message.Init_Data_Message (Local_Contrat.Parameter, My_Send_Frame); The_Contrats.Next (My_Contrat_Iterator); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); end loop; else Text_Manager.Text.Put_Line ("ORB : Methods hasn't been found"); The_Message.Remove_Data (My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Error, My_Send_Frame); The_Message.Init_Data_Message (Com_Defs.Value ("methods undisponible"), My_Send_Frame); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); end if; end Request_Method; procedure Request_Service is begin Text_Manager.Text.Put_Line ("Orb : Entry_Request_Service"); The_Message.Copy (My_Send_Frame, My_Receive_Frame); case My_Integer_Type_Of_Status is when T_Status.T_State'Pos (T_Status.Client_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : request_service from a client"); The_Message.Extract_The_Contract (My_Frame => My_Receive_Frame, My_Iter => My_Data_Iterator, Class_Name => The_Class_Name, Object_Name => The_Object_Name, Method_Name => The_Method_Name, Number_Of_Parameter => The_Number_Of_Parameter, Parameters => The_Parameters); The_Message.Remove_Data (My_Send_Frame); if The_Contrats.Find_This_Object (The_Contrat => My_Contrat, With_This_Name_Class => The_Class_Name, With_This_Object_Name => The_Object_Name, With_This_Method_Name => The_Method_Name, With_This_Parameter => The_Parameters, With_This_Number => The_Number_Of_Parameter) then The_Contrats.Extract_The_Adress (My_Contrat, From_This_Class => The_Class_Name, With_This_Object_Name => The_Object_Name, With_This_Method_Name => The_Method_Name, With_This_Parameter => The_Parameters, With_This_Number => The_Number_Of_Parameter, Response_In => My_Adress_String_And_Apply_Number2); -- ON RECHERCHE SI UN FILTRE EXISTE Set_Of_Fil_Observ.Extract_The_Adress (This_Set => Set_Of_Filter, This_Specification => The_Object_Name, Answer_In => My_Adress_String_And_Apply_Number3, Is_Ok => Status1); if Status1 then Set_Of_Fil_Observ.Extract_The_Machine (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number3, Answer_In => My_Host_Name, Is_Ok => Status); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Filter_Before_Server, My_Send_Frame); The_Message.Init_Source (My_Adress_String_And_Apply_Number2, My_Send_Frame); The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number3, My_Send_Frame); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number3); Set_Of_Fil_Observ.Extract_The_Machine (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number3, Answer_In => My_Host_Name, Is_Ok => Status); else -- PAS DE FILTRE Text_Manager.Text.Put_Line ("ORB : Request_Service : no filter found"); -- RECHERCHE UN OBSERVER Set_Of_Fil_Observ.Contains_This_Specification (This_Set => Set_Of_Observer, This_Specification => The_Object_Name, The_Adress => My_Adress_String_And_Apply_Number3, The_Status => Status); if Status then The_Message.Init_Source (My_Adress_String_And_Apply_Number3, My_Send_Frame); -- Il existe un OBSERVER else The_Message.Init_Source (Orb_Adress, My_Send_Frame); end if; My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number2); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Server, This_Adress => My_Adress_String_And_Apply_Number2, Answer_In => My_Host_Name); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Server, My_Send_Frame); The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number2, My_Send_Frame); The_Message.Remove_Data (My_Send_Frame); end if; else Text_Manager.Text.Put_Line ("ORB : Contract hasn't been found"); My_Adress_String_And_Apply_Number1 := The_Message. Read_Source_Adress_Internet_And_Apply_Number (My_Send_Frame); The_Message.Exchange_Source_Destination (My_Send_Frame); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number1); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number1, Answer_In => My_Host_Name); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Client, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Error, My_Send_Frame); The_Message.Init_Data_Message (Com_Defs.Value ("server undisponible"), My_Send_Frame); end if; Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); end; when others => Text_Manager.Text.Put_Line ("ORB : Request_Service : error dans case"); end case; end Request_Service; procedure Notification is begin Text_Manager.Text.Put_Line ("ORB : Entry_Notification"); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); The_Message.Next_Data (My_Data_Iterator); My_Receive_Data := The_Message.Value_Data (My_Data_Iterator); -- TRAITEMENT A AJOUTER end Notification; procedure Forward is begin Text_Manager.Text.Put_Line ("ORB : Entry_Forward"); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); The_Message.Next_Data (My_Data_Iterator); The_Class_Name := The_Message.Value_Data (My_Data_Iterator); -- TRAITEMENT A AJOUTER end Forward; procedure Publication is begin The_Message.Extract_The_Contract (My_Frame => My_Receive_Frame, My_Iter => My_Data_Iterator, Class_Name => The_Class_Name, Object_Name => The_Object_Name, Method_Name => The_Method_Name, Number_Of_Parameter => The_Number_Of_Parameter, Parameters => The_Parameters); The_Contrats.Add_A_Contrat (My_Contrat, With_This_Class_Name => The_Class_Name, With_This_Object_Name => The_Object_Name, With_This_Method_Name => The_Method_Name, With_This_Parameter => The_Parameters, With_This_Number => The_Number_Of_Parameter, With_This_Adress => My_Adress_String_And_Apply_Number); if The_Contrats.Find_This_Object (My_Contrat, With_This_Name_Class => The_Class_Name, With_This_Object_Name => The_Object_Name, With_This_Method_Name => The_Method_Name, With_This_Parameter => The_Parameters, With_This_Number => The_Number_Of_Parameter) then Text_Manager.Text.Put_Line ("ORB : publication add is OK"); else Text_Manager.Text.Put_Line ("ORB : publication add isn't OK"); end if; end Publication; procedure Unpublication is begin Text_Manager.Text.Put_Line ("ORB : Entry_Unpublication"); The_Message.Extract_The_Contract (My_Frame => My_Receive_Frame, My_Iter => My_Data_Iterator, Class_Name => The_Class_Name, Object_Name => The_Object_Name, Method_Name => The_Method_Name, Number_Of_Parameter => The_Number_Of_Parameter, Parameters => The_Parameters); The_Contrats.Delete_A_Contrat (My_Contrat, With_This_Class_Name => The_Class_Name, With_This_Object_Name => The_Object_Name, Which_Has_This_Adress => My_Adress_String_And_Apply_Number); end Unpublication; procedure Response is Tampon : The_Message.T_Frame; begin Text_Manager.Text.Put_Line ("ORB : Entry_response"); The_Message.Copy (My_Send_Frame, My_Receive_Frame); case My_Integer_Type_Of_Status is when T_Status.T_State'Pos (T_Status. Filter_To_Orb_Before_Server) => begin Text_Manager.Text.Put_Line ("ORB : Response after the filter and before the server"); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Server, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Request_Service, My_Send_Frame); My_Adress_String_And_Apply_Number1 := The_Message. Read_Destinataire_Adress_Internet_And_Apply_Number (My_Receive_Frame); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Server, This_Adress => My_Adress_String_And_Apply_Number1, Answer_In => My_Host_Name); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number1); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); end; when T_Status.T_State'Pos (T_Status.Server_To_Orb) => begin Text_Manager.Text.Put_Line ("ORB : Response from a server"); My_Adress_String_And_Apply_Number3 := The_Message. Read_Client_Adress_Internet_And_Apply_Number (My_Receive_Frame); My_Adress_String_And_Apply_Number2 := The_Message. Read_Destinataire_Adress_Internet_And_Apply_Number (My_Receive_Frame); My_Adress_String_And_Apply_Number1 := The_Message. Read_Source_Adress_Internet_And_Apply_Number (My_Receive_Frame); The_Message.Exchange_Source_Destination (My_Send_Frame); if My_Adress_String_And_Apply_Number2 = Orb_Adress then -- PAS DE FILTRE ni d'OBSERVER ASSOCIE -- On envoie au client The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number3, My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Client, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Response, My_Send_Frame); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number3, Answer_In => My_Host_Name); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number3); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); else if Set_Of_Fil_Observ.Contains_This_Adress (The_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number2) then The_Message.Exchange_Source_Destination (My_Send_Frame); The_Message.Init_Source (Orb_Adress, My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Filter_After_Server, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Request_Service, My_Send_Frame); Set_Of_Fil_Observ.Extract_The_Machine (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number2, Answer_In => My_Host_Name, Is_Ok => Status); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number2); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); else The_Message.Init_Source (Orb_Adress, My_Send_Frame); The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number2, My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Observer, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Request_Service, My_Send_Frame); Set_Of_Fil_Observ.Extract_The_Machine (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number2, Answer_In => My_Host_Name, Is_Ok => Status); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number2); The_Message.Copy (Tampon, My_Send_Frame); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Client, Tampon); The_Message.Init_Source (Orb_Adress, Tampon); The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number3, Tampon); The_Message.Init_Type_Of_Message (T_Message.Response, Tampon); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number3, Answer_In => My_Host_Name); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number3); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (Tampon)); The_Message.Send (My_Appli_Number, My_Host_Name, Tampon, My_Status); end if; end if; end; when T_Status.T_State'Pos (T_Status. Filter_To_Orb_After_Server) => begin Text_Manager.Text.Put_Line ("ORB : Response after the server and after the filter"); My_Adress_String_And_Apply_Number1 := The_Message. Read_Source_Adress_Internet_And_Apply_Number (My_Receive_Frame); The_Message.Exchange_Source_Destination (My_Send_Frame); Set_Of_Fil_Observ.Extract_The_Specification (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number1, Answer_In => My_Specif, Is_Ok => Status); Set_Of_Fil_Observ.Contains_This_Specification (This_Set => Set_Of_Observer, This_Specification => My_Specif, The_Adress => My_Adress_String_And_Apply_Number2, The_Status => Status); if Status then -- Il existe un OBSERVER The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number2, My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Observer, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Request_Service, My_Send_Frame); Set_Of_Fil_Observ.Extract_The_Machine (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number2, Answer_In => My_Host_Name, Is_Ok => Status); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number2); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); else Text_Manager.Text.Put_Line ("ORB : response : no observer"); end if; My_Adress_String_And_Apply_Number1 := The_Message. Read_Client_Adress_Internet_And_Apply_Number (My_Send_Frame); The_Message.Init_Destinataire (My_Adress_String_And_Apply_Number1, My_Send_Frame); The_Message.Init_Type_Of_Status (T_Status.Orb_To_Client, My_Send_Frame); The_Message.Init_Type_Of_Message (T_Message.Response, My_Send_Frame); My_Set_Of_Adress.Extract_The_Machine (This_Set => Set_Of_Client, This_Adress => My_Adress_String_And_Apply_Number1, Answer_In => My_Host_Name); My_Appli_Number := The_Message.Read_Apply_Number (My_Adress_String_And_Apply_Number1); Text_Manager.Text.Put_Line ("ORB : the send frame is : " & The_Message.Image (My_Send_Frame)); The_Message.Send (My_Appli_Number, My_Host_Name, My_Send_Frame, My_Status); end; when others => Text_Manager.Text.Put_Line ("ORB : Response : error case"); end case; end Response; procedure Subscription is begin Text_Manager.Text.Put_Line ("ORB : Entry_Subscription"); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); My_Receive_Data := The_Message.Value_Data (My_Data_Iterator); Text_Manager.Text.Put_Line ("ORB : " & "Observer specification is : " & Com_Defs.Image (My_Receive_Data)); Set_Of_Fil_Observ.Add_Specification (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number, This_Specification => My_Receive_Data); Set_Of_Fil_Observ.Contains_This_Specification (This_Set => Set_Of_Observer, This_Specification => My_Receive_Data, The_Adress => My_Adress_String_And_Apply_Number1, The_Status => Status); if Status then Text_Manager.Text.Put_Line ("ORB : Subscription add is OK"); else Text_Manager.Text.Put_Line ("ORB : Subscription add isn't OK"); end if; end Subscription; procedure Unsubscription is begin Text_Manager.Text.Put_Line ("ORB : Entry_Unsubscription"); Set_Of_Fil_Observ.Delete_To (This_Set => Set_Of_Observer, This_Adress => My_Adress_String_And_Apply_Number); end Unsubscription; procedure Filtration is begin Text_Manager.Text.Put_Line ("ORB : Entry_Filtration"); The_Message.Init_Data (My_Data_Iterator, My_Receive_Frame); My_Receive_Data := The_Message.Value_Data (My_Data_Iterator); Text_Manager.Text.Put_Line ("Orb : Filter specification is : " & Com_Defs.Image (My_Receive_Data)); Set_Of_Fil_Observ.Add_Specification (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number, This_Specification => My_Receive_Data); Set_Of_Fil_Observ.Contains_This_Specification (This_Set => Set_Of_Filter, This_Specification => My_Receive_Data, The_Adress => My_Adress_String_And_Apply_Number1, The_Status => Status); if Status then Text_Manager.Text.Put_Line ("ORB : Filtration add is OK"); else Text_Manager.Text.Put_Line ("ORB : Filtration add isn't OK"); end if; end Filtration; procedure Unfiltration is begin Text_Manager.Text.Put_Line ("Orb : Entry_Unfiltration"); Set_Of_Fil_Observ.Delete_To (This_Set => Set_Of_Filter, This_Adress => My_Adress_String_And_Apply_Number); end Unfiltration; begin The_Contrats.Create_Set (My_Contrat); My_Set_Of_Adress.Initialize (The_Set => Set_Of_Client); My_Set_Of_Adress.Initialize (The_Set => Set_Of_Server); Set_Of_Fil_Observ.Initialize (The_Set => Set_Of_Filter); Set_Of_Fil_Observ.Initialize (The_Set => Set_Of_Observer); The_Message.Init_T_Frame (My_Send_Frame); Text_Manager.Text.Put_Line ("ORB : End of the init"); delay (10.0); --********************************************************* loop loop Text_Manager.Text.Put_Line ("ORB : is trying to receive"); The_Message.Receive (Orb_Appli_Number, My_Receive_Frame, My_Status); delay (30.0); exit when My_Status = True; end loop; Text_Manager.Text.Put_Line ("ORB : has received" & The_Message.Image (My_Receive_Frame)); My_Integer_Type_Of_Message := The_Message.Read_Type_Of_Message (My_Receive_Frame); My_Integer_Type_Of_Status := The_Message.Read_Type_Of_Status (My_Receive_Frame); My_Adress_String_And_Apply_Number := The_Message.Read_Source_Adress_Internet_And_Apply_Number (My_Receive_Frame); My_Adress_String := The_Message.Read_Source_Adress (My_Receive_Frame); case My_Integer_Type_Of_Message is when T_Message.T_Mess'Pos (T_Message.Error) => begin Error; end; when T_Message.T_Mess'Pos (T_Message.Registration) => begin Registration; end; when T_Message.T_Mess'Pos (T_Message.Unregistration) => begin Unregistration; end; when T_Message.T_Mess'Pos (T_Message.Query) => begin Query; end; when T_Message.T_Mess'Pos (T_Message.Request_Method) => begin Request_Method; end; when T_Message.T_Mess'Pos (T_Message.Request_Service) => begin Request_Service; end; when T_Message.T_Mess'Pos (T_Message.Notification) => begin Notification; end; when T_Message.T_Mess'Pos (T_Message.Forward) => begin Forward; end; when T_Message.T_Mess'Pos (T_Message.Publication) => begin Publication; end; when T_Message.T_Mess'Pos (T_Message.Unpublication) => begin Unpublication; end; when T_Message.T_Mess'Pos (T_Message.Response) => begin Response; end; when T_Message.T_Mess'Pos (T_Message.Subscription) => begin Subscription; end; when T_Message.T_Mess'Pos (T_Message.Unsubscription) => begin Unsubscription; end; when T_Message.T_Mess'Pos (T_Message.Filtration) => begin Filtration; end; when T_Message.T_Mess'Pos (T_Message.Unfiltration) => begin Unfiltration; end; when others => Text_Manager.Text.Put_Line ("Orb : " & "type of message is unknown"); end case; -- The_Contrats.Print (My_Contrat); -- Text_Manager.Text.Put_Line ("Orb : description set of filter"); -- Set_Of_Fil_Observ.Print (Set_Of_Filter); -- Text_Manager.Text.Put_Line ("Orb : description set of observer"); -- Set_Of_Fil_Observ.Print (Set_Of_Observer); -- Text_Manager.Text.Put_Line ("Orb : description set of client"); -- My_Set_Of_Adress.Print (Set_Of_Client); -- Text_Manager.Text.Put_Line ("Orb : description set of server"); -- My_Set_Of_Adress.Print (Set_Of_Server); end loop; end Object_Request_Broker; end Master_Orb;
nblk1=46 nid=40 hdr6=6a [0x00] rec0=1f rec1=00 rec2=01 rec3=00a [0x01] rec0=15 rec1=00 rec2=3e rec3=044 [0x02] rec0=17 rec1=00 rec2=34 rec3=008 [0x03] rec0=10 rec1=00 rec2=3d rec3=064 [0x04] rec0=13 rec1=00 rec2=0c rec3=006 [0x05] rec0=12 rec1=00 rec2=10 rec3=016 [0x06] rec0=12 rec1=00 rec2=25 rec3=028 [0x07] rec0=17 rec1=00 rec2=32 rec3=042 [0x08] rec0=13 rec1=00 rec2=0f rec3=008 [0x09] rec0=1a rec1=00 rec2=0d rec3=01a [0x0a] rec0=0f rec1=00 rec2=12 rec3=02c [0x0b] rec0=12 rec1=00 rec2=24 rec3=014 [0x0c] rec0=10 rec1=00 rec2=2a rec3=02c [0x0d] rec0=11 rec1=00 rec2=15 rec3=042 [0x0e] rec0=11 rec1=00 rec2=1d rec3=030 [0x0f] rec0=15 rec1=00 rec2=44 rec3=01e [0x10] rec0=0e rec1=00 rec2=29 rec3=092 [0x11] rec0=10 rec1=00 rec2=45 rec3=008 [0x12] rec0=0f rec1=00 rec2=20 rec3=06c [0x13] rec0=12 rec1=00 rec2=02 rec3=008 [0x14] rec0=11 rec1=00 rec2=04 rec3=058 [0x15] rec0=11 rec1=00 rec2=1e rec3=03a [0x16] rec0=10 rec1=00 rec2=17 rec3=068 [0x17] rec0=1a rec1=00 rec2=3f rec3=040 [0x18] rec0=06 rec1=00 rec2=21 rec3=034 [0x19] rec0=14 rec1=00 rec2=14 rec3=074 [0x1a] rec0=16 rec1=00 rec2=30 rec3=058 [0x1b] rec0=15 rec1=00 rec2=2c rec3=086 [0x1c] rec0=01 rec1=00 rec2=39 rec3=058 [0x1d] rec0=10 rec1=00 rec2=1b rec3=092 [0x1e] rec0=05 rec1=00 rec2=0e rec3=006 [0x1f] rec0=10 rec1=00 rec2=2e rec3=09c [0x20] rec0=11 rec1=00 rec2=1a rec3=08c [0x21] rec0=10 rec1=00 rec2=06 rec3=058 [0x22] rec0=0f rec1=00 rec2=35 rec3=084 [0x23] rec0=10 rec1=00 rec2=3b rec3=010 [0x24] rec0=0e rec1=00 rec2=27 rec3=086 [0x25] rec0=0f rec1=00 rec2=42 rec3=06e [0x26] rec0=12 rec1=00 rec2=22 rec3=070 [0x27] rec0=02 rec1=00 rec2=03 rec3=07c [0x28] rec0=11 rec1=00 rec2=2d rec3=052 [0x29] rec0=11 rec1=00 rec2=41 rec3=002 [0x2a] rec0=10 rec1=00 rec2=0b rec3=06e [0x2b] rec0=16 rec1=00 rec2=3c rec3=012 [0x2c] rec0=08 rec1=00 rec2=43 rec3=038 [0x2d] rec0=18 rec1=00 rec2=08 rec3=08e [0x2e] rec0=17 rec1=00 rec2=07 rec3=00c [0x2f] rec0=18 rec1=00 rec2=2f rec3=008 [0x30] rec0=18 rec1=00 rec2=28 rec3=04a [0x31] rec0=05 rec1=00 rec2=11 rec3=034 [0x32] rec0=1e rec1=00 rec2=3a rec3=048 [0x33] rec0=1f rec1=00 rec2=36 rec3=002 [0x34] rec0=16 rec1=00 rec2=18 rec3=000 [0x35] rec0=16 rec1=00 rec2=18 rec3=000 [0x36] rec0=0e rec1=00 rec2=03 rec3=07c [0x37] rec0=0e rec1=00 rec2=43 rec3=052 [0x38] rec0=0d rec1=00 rec2=08 rec3=086 [0x39] rec0=0e rec1=00 rec2=44 rec3=056 [0x3a] rec0=0b rec1=00 rec2=2f rec3=01e [0x3b] rec0=10 rec1=00 rec2=2d rec3=006 [0x3c] rec0=0e rec1=00 rec2=25 rec3=018 [0x3d] rec0=0f rec1=00 rec2=33 rec3=004 [0x3e] rec0=0e rec1=00 rec2=26 rec3=044 [0x3f] rec0=14 rec1=00 rec2=1f rec3=07e [0x40] rec0=10 rec1=00 rec2=06 rec3=034 [0x41] rec0=16 rec1=00 rec2=35 rec3=016 [0x42] rec0=11 rec1=00 rec2=18 rec3=024 [0x43] rec0=10 rec1=00 rec2=1a rec3=02a [0x44] rec0=13 rec1=00 rec2=1b rec3=046 [0x45] rec0=0e rec1=00 rec2=39 rec3=000 tail 0x21763a0c487c59193abac 0x42a00088462060003 Free Block Chain: 0x40: 0000 00 33 00 05 80 02 67 65 02 72 76 2e 45 78 74 72 ┆ 3 ge rv.Extr┆ 0x33: 0000 00 26 00 04 80 01 20 01 54 65 78 74 5f 4d 61 6e ┆ & Text_Man┆ 0x26: 0000 00 1f 03 fc 00 3f 20 20 20 20 20 20 20 20 20 20 ┆ ? ┆ 0x1f: 0000 00 38 03 f9 80 1b 20 20 20 20 20 20 20 20 20 20 ┆ 8 ┆ 0x38: 0000 00 09 03 fc 80 16 5f 4f 72 62 5f 42 65 66 6f 72 ┆ _Orb_Befor┆ 0x9: 0000 00 1c 03 fc 80 12 69 74 68 5f 54 68 69 73 5f 4e ┆ ith_This_N┆ 0x1c: 0000 00 13 03 fc 80 23 20 20 20 20 20 20 20 20 20 20 ┆ # ┆ 0x13: 0000 00 16 03 fc 80 09 53 74 61 74 65 27 50 6f 73 09 ┆ State'Pos ┆ 0x16: 0000 00 31 03 fc 80 19 68 65 5f 43 6f 6e 74 72 61 74 ┆ 1 he_Contrat┆ 0x31: 0000 00 2b 03 fc 80 01 2c 01 00 44 20 20 20 20 20 20 ┆ + , D ┆ 0x2b: 0000 00 23 00 b9 80 28 62 20 3a 20 72 65 71 75 65 73 ┆ # (b : reques┆ 0x23: 0000 00 37 03 fc 80 13 49 6e 69 74 5f 54 79 70 65 5f ┆ 7 Init_Type_┆ 0x37: 0000 00 05 03 fc 80 31 20 20 20 20 20 20 20 20 20 20 ┆ 1 ┆ 0x5: 0000 00 19 00 0b 80 08 20 20 20 20 20 20 20 20 08 75 ┆ u┆ 0x19: 0000 00 0a 01 00 80 18 78 74 5f 4d 61 6e 61 67 65 72 ┆ xt_Manager┆ 0xa: 0000 00 46 03 fc 80 2e 20 20 20 20 20 20 20 20 20 20 ┆ F . ┆ 0x46: 0000 00 00 03 fc 80 30 20 20 20 20 20 20 20 20 20 20 ┆ 0 ┆