|
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: 17408 (0x4400) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Bgrb_Generic_Fact_Base_Server, seg_04b48b
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Queue_Generic; with Output_Stream; with Bgrb_Frames; package body Bgrb_Generic_Fact_Base_Server is Max_Change_Msg : Natural := 50; Max_Delete_Msg : Natural := 50; task Server is entry Delete (The_User_Object : Bgrb_Kbs.Kbs.Fact_Name); entry Change (The_Fact : Bgrb_Kbs.Kbs.Fact_Name; The_Slot : With_Slots; To_Value : Slot.Object); entry Update; end Server; type Delete_Messages is record What_Fact : Bgrb_Kbs.Kbs.Fact_Name; end record; type Change_Messages is record What_Fact : Bgrb_Kbs.Kbs.Fact_Name; What_Slot : With_Slots; The_Value : Slot.Object; end record; type Change_Messages_Table is array (1 .. Max_Change_Msg) of Change_Messages; type Delete_Messages_Table is array (1 .. Max_Delete_Msg) of Delete_Messages; task body Server is The_Change_Msg_Table : Change_Messages_Table; The_Delete_Msg_Table : Delete_Messages_Table; Nbr_Change_Msg : Natural := 0; Nbr_Delete_Msg : Natural := 0; begin loop select accept Update do -- bloque l'appelant while (Nbr_Delete_Msg > 0) loop case What_Class is when Bgrb_Kbs.Robot => Bgrb_Frames.Robots.Delete (The_Delete_Msg_Table (Nbr_Delete_Msg). What_Fact); when Bgrb_Kbs.Brick => Bgrb_Frames.Bricks.Delete (The_Delete_Msg_Table (Nbr_Delete_Msg). What_Fact); when Bgrb_Kbs.Box => Bgrb_Frames.Boxes.Delete (The_Delete_Msg_Table (Nbr_Delete_Msg). What_Fact); when Bgrb_Kbs.Nothing => null; end case; Nbr_Delete_Msg := Nbr_Delete_Msg - 1; end loop; while (Nbr_Change_Msg > 0) loop case (What_Class) is when Bgrb_Kbs.Robot => Bgrb_Frames.Robots.Change (The_Change_Msg_Table (Nbr_Change_Msg). What_Fact, The_Change_Msg_Table (Nbr_Change_Msg). What_Slot, The_Change_Msg_Table (Nbr_Change_Msg). The_Value); null; when Bgrb_Kbs.Brick => Bgrb_Frames.Bricks.Change (The_Change_Msg_Table (Nbr_Change_Msg). What_Fact, The_Change_Msg_Table (Nbr_Change_Msg). What_Slot, The_Change_Msg_Table (Nbr_Change_Msg). The_Value); null; when Bgrb_Kbs.Box => Bgrb_Frames.Boxes.Change (The_Change_Msg_Table (Nbr_Change_Msg). What_Fact, The_Change_Msg_Table (Nbr_Change_Msg). What_Slot, The_Change_Msg_Table (Nbr_Change_Msg). The_Value); null; when Bgrb_Kbs.Nothing => null; end case; Nbr_Change_Msg := Nbr_Change_Msg - 1; end loop; end Update; or accept Change (The_Fact : Bgrb_Kbs.Kbs.Fact_Name; The_Slot : With_Slots; To_Value : Slot.Object) do Nbr_Change_Msg := Nbr_Change_Msg + 1; The_Change_Msg_Table (Nbr_Change_Msg).What_Fact := The_Fact; The_Change_Msg_Table (Nbr_Change_Msg).What_Slot := The_Slot; The_Change_Msg_Table (Nbr_Change_Msg).The_Value := To_Value; end Change; or accept Delete (What_Class_Name : Bgrb_Kbs.Class_Names; The_User_Object : Bgrb_Kbs.Kbs.Fact_Name) do Nbr_Delete_Msg := Nbr_Delete_Msg + 1; The_Delete_Msg_Table (Nbr_Delete_Msg).What_Fact := The_User_Object; end Delete; or terminate; end select; end loop; end Server; procedure Delete (The_User_Object : Bgrb_Kbs.Kbs.Fact_Name) is begin Server.Delete (The_User_Object); end Delete; procedure Change (The_Fact : Bgrb_Kbs.Kbs.Fact_Name; The_Slot : With_Slots; To_Value : Slot.Object) is begin Server.Change (The_Fact, The_Slot, To_Value); end Change; procedure Update is begin Server.Update; end Update; end Bgrb_Generic_Fact_Base_Server;
nblk1=10 nid=b hdr6=c [0x00] rec0=27 rec1=00 rec2=01 rec3=004 [0x01] rec0=17 rec1=00 rec2=09 rec3=04a [0x02] rec0=11 rec1=00 rec2=02 rec3=022 [0x03] rec0=11 rec1=00 rec2=0e rec3=01a [0x04] rec0=14 rec1=00 rec2=10 rec3=00c [0x05] rec0=25 rec1=00 rec2=08 rec3=000 [0x06] rec0=12 rec1=00 rec2=08 rec3=02a [0x07] rec0=21 rec1=00 rec2=0b rec3=000 [0x08] rec0=20 rec1=00 rec2=07 rec3=000 [0x09] rec0=10 rec1=00 rec2=09 rec3=030 [0x0a] rec0=1e rec1=00 rec2=08 rec3=01c [0x0b] rec0=01 rec1=00 rec2=0e rec3=000 [0x0c] rec0=01 rec1=00 rec2=0e rec3=000 [0x0d] rec0=0d rec1=00 rec2=08 rec3=000 [0x0e] rec0=0d rec1=00 rec2=08 rec3=001 [0x0f] rec0=00 rec1=00 rec2=00 rec3=000 tail 0x2174fc1e4867a6859a74d 0x42a00088462063c03 Free Block Chain: 0xb: 0000 00 04 00 8a 80 02 65 3b 02 00 00 00 00 00 00 00 ┆ e; ┆ 0x4: 0000 00 07 00 04 80 01 6c 01 02 03 04 05 06 07 08 09 ┆ l ┆ 0x7: 0000 00 0c 03 3d 80 0c 20 20 20 20 20 20 20 20 20 20 ┆ = ┆ 0xc: 0000 00 06 03 fc 80 1e 65 5f 4f 70 65 72 61 74 69 6f ┆ e_Operatio┆ 0x6: 0000 00 0a 00 11 80 0e 20 20 20 20 20 20 20 63 61 73 ┆ cas┆ 0xa: 0000 00 03 01 1b 80 39 20 20 20 20 20 20 20 20 20 20 ┆ 9 ┆ 0x3: 0000 00 0d 01 e3 80 1b 74 65 20 64 6f 20 20 2d 2d 20 ┆ te do -- ┆ 0xd: 0000 00 05 00 0e 80 0b 6d 65 73 2e 52 6f 62 6f 74 73 ┆ mes.Robots┆ 0x5: 0000 00 0f 00 46 80 1c 20 20 20 20 20 20 20 20 20 20 ┆ F ┆ 0xf: 0000 00 00 03 fc 80 05 77 6e 20 3d 3e 05 00 19 20 20 ┆ wn => ┆