|
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: 13312 (0x3400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Gestion_Orb, seg_056a17
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Text_Io; with Gestion_Table; with V_String; with Utils; with Byte_Defs; package body Gestion_Orb is Competence_Found : Boolean; procedure Traite_Objet (Objet_Traite : in out Message.Objet; Socket_Recep : Transport_Defs.Socket_Id; Host_Recep : Transport_Defs.Host_Id; Socket_Emis : in out Transport_Defs.Socket_Id; Host_Emis : in out Transport_Defs.Host_Id) is All_Seen : Boolean; Service_Available_Orb : Boolean; Ordre_Mes : Integer; Type_Of_Object : Message.Type_Message; Indice_Trouve : Integer; begin --Text_Io.Put_Line ("Gestion_Orb::Traite_objet -- entree"); Type_Of_Object := Message.Consulter_Typ (Objet_Traite); case Type_Of_Object is when Message.Registration => begin -- Text_Io.Put_Line -- ("Gestion_Orb::Traite_Objet -- entree dans Registration"); Message.Modifier_Expediteur (Objet_Traite, Registration_Of_Server (Socket_Recep, Host_Recep)); Message.Modifier_Typ (Objet_Traite, Message.Answer_Registration); Socket_Emis := Socket_Recep; Host_Emis := Host_Recep; end; when Message.Publication => begin -- Text_Io.Put_Line -- ("Gestion_orb::Traite_objet -- entree dans publication"); Add_Service (V_String.Image (Message.Consulter_Donnee (Objet_Traite)), Message.Consulter_Expediteur (Objet_Traite)); -- Text_Io.Put_Line -- ("Gestion_Orb::Traite_Objet -- publication fin ad_service"); Message.Modifier_Typ (Objet_Traite, Message.Service_Added); -- Text_Io.Put_Line -- ("Gestion_Orb::Traite_Objet -- publication fin modif_type"); Give_Host_Socket_Of_Indice (Message.Consulter_Expediteur (Objet_Traite), Host_Emis, Socket_Emis); -- Text_Io.Put_Line -- ("host_emis : " & -- Utils.Byte_String_To_String -- (Byte_Defs.Byte_String (Host_Emis)) & "sock : " & -- Utils.Byte_String_To_String -- (Byte_Defs.Byte_String (Socket_Emis))); end; when Message.Request => begin Ordre_Mes := 0; --Text_Io.Put_Line ("Gestion_orb::debut de request"); --Text_Io.Put_Line (V_String.Image (Message.Consulter_Donnee -- (Objet_Traite))); Get_Host_Socket_Of_Service (V_String.Image (Message.Consulter_Donnee (Objet_Traite)), Ordre_Mes, Host_Emis, Socket_Emis, Indice_Trouve, All_Seen, Service_Available_Orb); -- Text_Io.Put_Line ("getion_orb::available:"); Message.Modifier_Typ (Objet_Traite, Message.Message_For_Server); Message.Modifier_Destinataire (Objet_Traite, Indice_Trouve); if Service_Available_Orb = False then Message.Modifier_Typ (Objet_Traite, Message.Service_Not_Available); Message.Modifier_Destinataire (Objet_Traite, Message.Consulter_Expediteur (Objet_Traite)); Give_Host_Socket_Of_Indice (Message.Consulter_Expediteur (Objet_Traite), Host_Emis, Socket_Emis); end if; -- Text_Io.Put_Line ("gestion_orb::traite_objet:host:" & -- Utils.Byte_String_To_String -- (Byte_Defs.Byte_String (Host_Emis))); -- Text_Io.Put_Line ("gestion_orb::traite_ojet:socket:" & -- Utils.Byte_String_To_String -- (Byte_Defs.Byte_String (Socket_Emis))); end; when Message.Service_Result => begin Message.Modifier_Typ (Objet_Traite, Message.Your_Answer); Give_Host_Socket_Of_Indice (Message.Consulter_Expediteur (Objet_Traite), Host_Emis, Socket_Emis); end; when Message.Unregistration => begin --Text_Io.Put_Line -- ("debut gestion orb unregistration de l'objet numero " & -- Integer'Image (Message.Consulter_Expediteur -- (Objet_Traite))); Gestion_Table.Disable (Message.Consulter_Expediteur (Objet_Traite)); -- Text_Io.Put_Line ("gestion orb apres disable"); Message.Modifier_Typ (Objet_Traite, Message.Answer_Unregistration); -- Text_Io.Put_Line ("gestion orb type modifie"); Give_Host_Socket_Of_Indice (Message.Consulter_Expediteur (Objet_Traite), Host_Emis, Socket_Emis); -- Text_Io.Put_Line -- ("gestion_orb recuperation socket et host"); end; when others => begin Text_Io.Put_Line ("Gestion_orb::Traite_Objet : erreur sur le type du message ---------------------"); end; end case; end Traite_Objet; function Registration_Of_Server (Nsocket : Transport_Defs.Socket_Id; Hname : Transport_Defs.Host_Id) return Integer is begin return Gestion_Table.Add_Item_Tab_A (Nsocket, Hname); end Registration_Of_Server; procedure Add_Service (Competence : String; Ident_I : Integer) is begin Gestion_Table.Add_Service_Tab_B (Competence, Ident_I); end Add_Service; procedure Get_Host_Socket_Of_Service (Competence : String; Ordre : in out Integer; Hname : in out Transport_Defs.Host_Id; Socket : in out Transport_Defs.Socket_Id; Indice_Tab_A_Trouve : in out Integer; All_Seen : in out Boolean; Serv_Available : in out Boolean) is Enabled_Ordre : Boolean; Indice_Tab_A : Integer := 1; begin loop Gestion_Table.Return_Contenu_Liste_Position (Gestion_Table.Return_Liste_Tab_B (Competence), Ordre, Indice_Tab_A, Enabled_Ordre, All_Seen, Competence_Found); exit when (Enabled_Ordre = True or All_Seen = True or Competence_Found = False); Ordre := Ordre + 1; --Text_Io.Put_Line -- ("gestion_orb::get_host_socket_of_service: ordre :" & -- Integer'Image (Ordre) & "indice_trouve" & -- Integer'Image (Indice_Tab_A)); end loop; --Text_Io.Put_Line ("apres trouve : " & Integer'Image (Indice_Tab_A)); if Competence_Found = False or Enabled_Ordre = False then Serv_Available := False; -- Text_Io.Put_Line -- ("Gestion_Orb::Get_Host_Socket_Of_Service : partie comptence_found = false"); All_Seen := False; Indice_Tab_A_Trouve := 1; else -- Text_Io.Put_Line -- ("Gestion_Orb::Get_Host_Socket_Of_Service : partie comptence_found = true"); Serv_Available := True; Gestion_Table.Give_Host_Socket_Tab_A (Indice_Tab_A, Hname, Socket); -- Text_Io.Put_Line ("gestion_orb::get_host_...:host trouve et emis" & -- Utils.Byte_String_To_String -- (Byte_Defs.Byte_String (Hname))); -- Text_Io.Put_Line ("socket trouve et emis" & --Utils.Byte_String_To_String (Byte_Defs.Byte_String (Socket)); Indice_Tab_A_Trouve := Indice_Tab_A; -- Text_Io.Put_Line ("gestion_orb::get_host_socket_of_service:FIN"); end if; --Text_Io.Put_Line ("gestion_orb::Get_Host_Socket_Of_Service : FIN"); --Text_Io.Put_Line -- ("gestion_orb::Get_host_socket_of_service : renvoye : " & --Boolean'Image (Serv_Available)); end Get_Host_Socket_Of_Service; procedure Give_Host_Socket_Of_Indice (Indice : Integer; Hname : in out Transport_Defs.Host_Id; Socket : in out Transport_Defs.Socket_Id) is begin Gestion_Table.Give_Host_Socket_Tab_A (Indice, Hname, Socket); end Give_Host_Socket_Of_Indice; procedure Init_Tableaux is begin Gestion_Table.Init_Tab_B; end Init_Tableaux; end Gestion_Orb;
nblk1=c nid=3 hdr6=14 [0x00] rec0=1d rec1=00 rec2=01 rec3=01e [0x01] rec0=11 rec1=00 rec2=05 rec3=076 [0x02] rec0=13 rec1=00 rec2=0c rec3=05a [0x03] rec0=10 rec1=00 rec2=02 rec3=052 [0x04] rec0=12 rec1=00 rec2=0a rec3=01a [0x05] rec0=12 rec1=00 rec2=07 rec3=056 [0x06] rec0=1c rec1=00 rec2=06 rec3=028 [0x07] rec0=14 rec1=00 rec2=09 rec3=06e [0x08] rec0=11 rec1=00 rec2=08 rec3=060 [0x09] rec0=17 rec1=00 rec2=0b rec3=000 [0x0a] rec0=09 rec1=00 rec2=03 rec3=000 [0x0b] rec0=13 rec1=00 rec2=04 rec3=001 tail 0x21762f8b687c49707eee1 0x42a00088462060003 Free Block Chain: 0x3: 0000 00 04 00 11 80 0e 74 72 69 6e 67 2e 49 6d 61 67 ┆ tring.Imag┆ 0x4: 0000 00 00 02 7f 80 13 74 65 5f 53 74 72 69 6e 67 5f ┆ te_String_┆