|
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: 22528 (0x5800) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Query_Manager, seg_0574b6
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Frame_Defs; with Orb_Defs; with Letter_Box_Frames; with Mail_Sender; with Service_Manager; with Text_Io; package body Query_Manager is package Frame_Sender is new Mail_Sender (Frame_Defs.Frame, Frame_Defs.Get_Frame); procedure Send_Echo (The_Frame : Frame_Defs.Frame) is The_Connection_Id : Orb_Defs.Connection_Id; The_Socket_Id : Orb_Defs.Socket_Id; The_Host_Id : Orb_Defs.Host_Id; The_Time_Out : Natural := 40; The_Success : Boolean; Null_Socket_Id : Orb_Defs.Socket_Id := Orb_Defs.Null_Socket_Id; begin Text_Io.Put_Line (Frame_Defs.Image (The_Frame)); Frame_Sender.Init (The_Connection_Id, Orb_Defs.Network_Kind, Null_Socket_Id); Frame_Defs.Get (Frame_Defs.Dest_Socket_Field, The_Frame, The_Socket_Id); Frame_Defs.Get (Frame_Defs.Dest_Host_Field, The_Frame, The_Host_Id); Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id, The_Socket_Id, The_Time_Out, The_Success, The_Frame); Frame_Sender.Close (The_Connection_Id); end Send_Echo; procedure Abonne_Agent (The_Frame : Frame_Defs.Frame) is The_Funct : Orb_Defs.Funct; The_Connection_Id : Orb_Defs.Connection_Id; The_Host_Id : Orb_Defs.Host_Id; The_Socket_Id : Orb_Defs.Socket_Id; The_Message : Orb_Defs.Message; The_Name : Orb_Defs.Name; The_Message_Number : Natural; Ok_Add : Boolean; Null_Socket_Id : Orb_Defs.Socket_Id := Orb_Defs.Null_Socket_Id; The_Result_Frame : Frame_Defs.Frame; The_Time_Out : Natural := 40; The_Success : Boolean; begin Frame_Defs.Get (Frame_Defs.Nom_Exp_Field, The_Frame, The_Name); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Host_Id); Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Socket_Id); Frame_Defs.Get (Frame_Defs.Service_Field, The_Frame, The_Funct); Frame_Defs.Get (Frame_Defs.Message_Field, The_Frame, The_Message); Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); Frame_Sender.Init (The_Connection_Id, Orb_Defs.Network_Kind, Null_Socket_Id); if The_Funct = "serv" then Ok_Add := Service_Manager.Add_Service (The_Name, The_Connection_Id, The_Host_Id, The_Socket_Id, The_Message); end if; if The_Funct = "filt" then Ok_Add := Service_Manager.Add_Filter (The_Name, The_Connection_Id, The_Host_Id, The_Socket_Id, The_Message); end if; if The_Funct = "spy" then Ok_Add := Service_Manager.Add_Spy (The_Name, The_Connection_Id, The_Host_Id, The_Socket_Id, The_Message); end if; if Ok_Add = True then Text_Io.Put_Line ("Registration succeeded"); Frame_Defs.Init_Frame ("orb ", The_Socket_Id, The_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "regi", "ok ", "registration was successfull", The_Result_Frame); Text_Io.Put_Line ("ORB is going to send the frame :"); Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id, The_Socket_Id, The_Time_Out, The_Success, The_Result_Frame); else Text_Io.Put_Line ("Registration failed"); Frame_Defs.Init_Frame ("orb ", The_Socket_Id, The_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "regi", "fail", "registration failed", The_Result_Frame); Text_Io.Put_Line ("ORB is going to send the frame :"); Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id, The_Socket_Id, The_Time_Out, The_Success, The_Result_Frame); Frame_Sender.Close (The_Connection_Id); end if; end Abonne_Agent; procedure Desabonne_Agent (The_Frame : Frame_Defs.Frame) is The_Host_Id : Orb_Defs.Host_Id; The_Socket_Id : Orb_Defs.Socket_Id; The_Funct : Orb_Defs.Funct; The_Destruct : Boolean; The_Message_Number : Natural; The_Connection_Id : Orb_Defs.Connection_Id; The_Echo_Frame : Frame_Defs.Frame; begin Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Host_Id); Frame_Defs.Get (Frame_Defs.Service_Field, The_Frame, The_Funct); if The_Funct = "serv" then The_Destruct := Service_Manager.Remove_Service (The_Host_Id, The_Socket_Id); end if; if The_Funct = "filt" then The_Destruct := Service_Manager.Remove_Filter (The_Host_Id, The_Socket_Id); end if; if The_Funct = "spy " then The_Destruct := Service_Manager.Remove_Spy (The_Host_Id, The_Socket_Id); end if; Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); if The_Destruct = False then Text_Io.Put_Line ("Unregistration failed"); Frame_Defs.Init_Frame ("orb ", The_Socket_Id, The_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "unre", "fail", "unregistration failed", The_Echo_Frame); else Text_Io.Put_Line ("Unregistration succeeded"); Frame_Defs.Init_Frame ("orb ", The_Socket_Id, The_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "unre", "ok ", "unregistration succeded", The_Echo_Frame); end if; Text_Io.Put_Line ("ORB is going to send the frame :"); Send_Echo (The_Echo_Frame); end Desabonne_Agent; procedure Direct_Send (The_Frame : Frame_Defs.Frame) is The_Class : Orb_Defs.Class; The_Funct : Orb_Defs.Funct; The_Host_Id : Orb_Defs.Host_Id; The_Socket_Id : Orb_Defs.Socket_Id; The_Connection_Id : Orb_Defs.Connection_Id; The_Exist : Boolean; The_Message_Number : Natural; The_Time_Out : Natural := 40; The_Exp_Socket_Id : Orb_Defs.Socket_Id; The_Exp_Host_Id : Orb_Defs.Host_Id; The_Echo_Frame : Frame_Defs.Frame; The_Success : Boolean; begin Frame_Defs.Get (Frame_Defs.Service_Kind_Field, The_Frame, The_Class); Frame_Defs.Get (Frame_Defs.Service_Field, The_Frame, The_Funct); if The_Class = "rjob" then Text_Io.Put_Line ("ORB is going to send the frame :"); Send_Echo (The_Frame); else Text_Io.Put_Line ("ORB is going to check if the agent exist"); Frame_Defs.Get (Frame_Defs.Dest_Host_Field, The_Frame, The_Host_Id); Frame_Defs.Get (Frame_Defs.Dest_Socket_Field, The_Frame, The_Socket_Id); Service_Manager.Exist_Service (The_Class, The_Funct, The_Connection_Id, The_Host_Id, The_Socket_Id, The_Exist); if The_Exist = True then Text_Io.Put_Line ("the agent exist"); Text_Io.Put_Line ("ORB is going to send the frame :"); Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id, The_Socket_Id, The_Time_Out, The_Success, The_Frame); if The_Success = False then Text_Io.Put_Line ("ORB cannot connect the agent and set the agent to failure"); Service_Manager.Set_Agent_To_Failure (The_Host_Id, The_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Exp_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Exp_Host_Id); Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); Frame_Defs.Init_Frame ("orb ", The_Exp_Socket_Id, The_Exp_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "rjob", "fail", "the agent does not respond", The_Echo_Frame); Text_Io.Put_Line ("ORB is going to send the frame :"); Send_Echo (The_Echo_Frame); end if; else Text_Io.Put_Line ("the agent do not exist"); Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Exp_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Exp_Host_Id); Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); Frame_Defs.Init_Frame ("orb ", The_Exp_Socket_Id, The_Exp_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "rjob", "fail", "the agent does not exist", The_Echo_Frame); Text_Io.Put_Line ("ORB is going to send the frame"); Send_Echo (The_Echo_Frame); end if; end if; end Direct_Send; procedure Normal_Send (The_Frame : in out Frame_Defs.Frame) is The_Class : Orb_Defs.Class; The_Funct : Orb_Defs.Funct; The_Connection_Id : Orb_Defs.Connection_Id; The_Host_Id : Orb_Defs.Host_Id; The_Socket_Id : Orb_Defs.Socket_Id; The_Service_Delivrered : Boolean; The_Time_Out : Natural := 40; The_Success : Boolean; The_Exp_Socket : Orb_Defs.Socket_Id; The_Exp_Host : Orb_Defs.Host_Id; The_Message_Number : Natural; The_Exp_Socket_Id : Orb_Defs.Socket_Id; The_Exp_Host_Id : Orb_Defs.Host_Id; The_Echo_Frame : Frame_Defs.Frame; The_Service_Delivered : Boolean; begin Frame_Defs.Get (Frame_Defs.Service_Kind_Field, The_Frame, The_Class); Frame_Defs.Get (Frame_Defs.Service_Field, The_Frame, The_Funct); Service_Manager.Ask_Service (The_Class, The_Funct, The_Connection_Id, The_Host_Id, The_Socket_Id, The_Service_Delivered); if The_Service_Delivered = True then Text_Io.Put_Line ("the service is found"); Frame_Defs.Set (Frame_Defs.Dest_Socket_Field, The_Socket_Id, The_Frame); Frame_Defs.Set (Frame_Defs.Dest_Host_Field, The_Host_Id, The_Frame); Text_Io.Put_Line ("ORB is going to send the frame :"); Text_Io.Put_Line (Frame_Defs.Image (The_Frame)); Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id, The_Socket_Id, The_Time_Out, The_Success, The_Frame); if The_Success = False then Text_Io.Put_Line ("ORB cannot connect the agent and set the agent to failure"); Service_Manager.Set_Agent_To_Failure (The_Host_Id, The_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Exp_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Exp_Host_Id); Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); Frame_Defs.Init_Frame ("orb ", The_Exp_Socket_Id, The_Exp_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "rjob", "fail", "the agent does not respond", The_Echo_Frame); Text_Io.Put_Line ("ORB is going to send the frame : "); Send_Echo (The_Echo_Frame); end if; else Text_Io.Put_Line ("the service is not found"); Frame_Defs.Get (Frame_Defs.Exp_Socket_Field, The_Frame, The_Exp_Socket_Id); Frame_Defs.Get (Frame_Defs.Exp_Host_Field, The_Frame, The_Exp_Host_Id); Frame_Defs.Get (Frame_Defs.Message_Number_Field, The_Frame, The_Message_Number); Frame_Defs.Init_Frame ("orb ", The_Exp_Socket_Id, The_Exp_Host_Id, Orb_Defs.Default_Orb_Socket, Orb_Defs.Default_Orb_Host, 0, The_Message_Number, "rjob", "fail", "the service does not exist", The_Echo_Frame); Text_Io.Put_Line ("ORB is going to send the _frame :"); Send_Echo (The_Echo_Frame); end if; end Normal_Send; task Query_Manager_Task is entry Dispose; end Query_Manager_Task; task body Query_Manager_Task is The_Frame : Frame_Defs.Frame; The_Socket_Id : Orb_Defs.Socket_Id; The_Class : Orb_Defs.Class; Done : Boolean := False; begin Text_Io.Put_Line ("Demmarrage de la tache Query Manager"); loop select accept Dispose do Done := True; end Dispose; else if Letter_Box_Frames.Check = True then Text_Io.Put_Line ("Query Manager is going to read BAL !!"); Letter_Box_Frames.Read (The_Frame); Frame_Defs.Get (Frame_Defs.Service_Kind_Field, The_Frame, The_Class); if The_Class = "regi" then Text_Io.Put_Line ("ORB is going to register an agent"); Abonne_Agent (The_Frame); else if The_Class = "unre" then Text_Io.Put_Line ("ORB is going to unregister an agent"); Desabonne_Agent (The_Frame); else Frame_Defs.Get (Frame_Defs.Dest_Socket_Field, The_Frame, The_Socket_Id); if Orb_Defs."=" (The_Socket_Id, Orb_Defs.Null_Socket_Id) then Text_Io.Put_Line ("ORB is going to find an agent for the service"); Normal_Send (The_Frame); else Text_Io.Put_Line ("ORB is going to send the answer"); Direct_Send (The_Frame); end if; end if; end if; end if; end select; Text_Io.Put_Line ("The Query Manager is alive"); exit when Done = True; end loop; end Query_Manager_Task; procedure Dispose is begin Query_Manager_Task.Dispose; end Dispose; end Query_Manager;
nblk1=15 nid=d hdr6=24 [0x00] rec0=1e rec1=00 rec2=01 rec3=01e [0x01] rec0=1b rec1=00 rec2=08 rec3=04e [0x02] rec0=10 rec1=00 rec2=02 rec3=086 [0x03] rec0=17 rec1=00 rec2=10 rec3=05a [0x04] rec0=1a rec1=00 rec2=0f rec3=030 [0x05] rec0=19 rec1=00 rec2=05 rec3=062 [0x06] rec0=14 rec1=00 rec2=04 rec3=032 [0x07] rec0=1d rec1=00 rec2=07 rec3=044 [0x08] rec0=16 rec1=00 rec2=0e rec3=0a8 [0x09] rec0=14 rec1=00 rec2=0c rec3=022 [0x0a] rec0=17 rec1=00 rec2=06 rec3=04a [0x0b] rec0=18 rec1=00 rec2=11 rec3=078 [0x0c] rec0=17 rec1=00 rec2=12 rec3=036 [0x0d] rec0=15 rec1=00 rec2=15 rec3=008 [0x0e] rec0=1d rec1=00 rec2=0b rec3=000 [0x0f] rec0=1f rec1=00 rec2=14 rec3=034 [0x10] rec0=1b rec1=00 rec2=0a rec3=012 [0x11] rec0=06 rec1=00 rec2=03 rec3=000 [0x12] rec0=12 rec1=00 rec2=05 rec3=062 [0x13] rec0=15 rec1=00 rec2=03 rec3=000 [0x14] rec0=15 rec1=00 rec2=03 rec3=000 tail 0x217645fa087c788554eb2 0x42a00088462060003 Free Block Chain: 0xd: 0000 00 13 00 62 80 3a 20 20 20 20 54 65 78 74 5f 49 ┆ b : Text_I┆ 0x13: 0000 00 09 00 72 80 07 6f 73 74 2c 20 30 2c 07 00 46 ┆ r ost, 0, F┆ 0x9: 0000 00 00 03 ef 80 32 20 20 54 65 78 74 5f 49 6f 2e ┆ 2 Text_Io.┆