DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦184179742⟧ Ada Source

    Length: 8192 (0x2000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Bgrb_Fact_Base_Server_1, seg_04b474

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



-- version   30.03.95

--pas de stockage des messages venant des robots mais attent
--un unique serveur

--qd update, on valide les change et les delete   jusqu'a ce que
--il n'y en ait plus

--Pb : on ne sait pas excactement si tous les change et delete ont ete accepte
--=> surtout si robot fait de l'affichage entre 2 actions

--donc si robot met state de box (la derniere avec le dernier robot)  a full
--=> le MI s'arrete car plus de reserved box

--MAIS LE ROBOT N'A PAS FINI
--=> la tache ne se finie pas



--DE PLUS TOUJOURS PB D'AFFECTATION DE PLACE DE BRICK A UN NUMERO DE BOX



----------------------------------------------------------------------------
--SPEC
with Slot;
with Bgrb_Kbs;
with Bgrb_Frames;

package Bgrb_Fact_Base_Server_1 is
    use Bgrb_Kbs.Kbs;


    procedure Delete (What_Class_Name : Bgrb_Kbs.Class_Names;
                      The_User_Object : Fact_Name);
    procedure Change (What_Class_Name : Bgrb_Kbs.Class_Names;
                      The_Fact        : Fact_Name;
                      The_Slot        : Bgrb_Frames.Slots;
                      To_Value        : Slot.Object);  
    procedure Update;

end Bgrb_Fact_Base_Server_1;



-- SOLUTION SANS FILE DE MESSAGE => Appelant est bloque en attendant l'update
-- BODY
--with Queue_Generic;
--with Output_Stream;


--package body Bgrb_Fact_Base_Server is


--task Server is
--    entry Delete (What_Class_Name : Bgrb_Kbs.Class_Names;
--                  The_User_Object : Bgrb_Kbs.Kbs.Fact_Name);
--    entry Change (What_Class_Name : Bgrb_Kbs.Class_Names;
--                  The_Fact        : Bgrb_Kbs.Kbs.Fact_Name;
--                  The_Slot        : Bgrb_Frames.Slots;
--                  To_Value        : Slot.Object);
--    entry Update;
--end Server;




--task body Server is
--    Finished : Boolean := False;
--begin
--    loop
--        select
--            accept Update do  -- bloque l'appelant
--                Finished := False;
--               while not (Finished) loop
--                   select
--                       accept Delete (What_Class_Name :
--                                        Bgrb_Kbs.Class_Names;
--                                     The_User_Object :
--                                       Bgrb_Kbs.Kbs.Fact_Name) do
--                          case What_Class_Name is
--
--                              when Bgrb_Kbs.Robot =>
--                                  Bgrb_Frames.Robots.Delete
--                                     ((The_User_Object));
--
--                              when Bgrb_Kbs.Brick =>
--                                  Bgrb_Frames.Bricks.Delete
--                                     ((The_User_Object));
--
--                              when Bgrb_Kbs.Box =>
--                                  Bgrb_Frames.Boxes.Delete
--                                     ((The_User_Object));
--                              when Bgrb_Kbs.Nothing =>
--                                  null;
--                          end case;
--                      end Delete;
--
--                  or
--                      accept Change (What_Class_Name :
--                                       Bgrb_Kbs.Class_Names;
--                                    The_Fact : Bgrb_Kbs.Kbs.Fact_Name;
--                                   The_Slot : Bgrb_Frames.Slots;
--                                   To_Value : Slot.Object) do
--                        case What_Class_Name is
--
--                            when Bgrb_Kbs.Robot =>
--                                Bgrb_Frames.Robots.Change
--                                   (The_Fact, The_Slot, To_Value);
--
--                            when Bgrb_Kbs.Brick =>
--                                Bgrb_Frames.Bricks.Change
--                                   (The_Fact, The_Slot, To_Value);
--
--                            when Bgrb_Kbs.Box =>
--                                Bgrb_Frames.Boxes.Change
--                                   (The_Fact, The_Slot, To_Value);
--
--                            when Bgrb_Kbs.Nothing =>
--                                null;
--                        end case;
--
--                    end Change;
--                else
--                    Finished := True;
--                end select;
--            end loop;
--        end Update;
--    or
--        terminate;
--
--    end select;
--end loop;
--end Server;



-- procedure Delete (What_Class_Name : Bgrb_Kbs.Class_Names;
--                   The_User_Object : Bgrb_Kbs.Kbs.Fact_Name) is
-- begin
--     Server.Delete (What_Class_Name, The_User_Object);
-- end Delete;


-- procedure Change (What_Class_Name : Bgrb_Kbs.Class_Names;
--                   The_Fact        : Bgrb_Kbs.Kbs.Fact_Name;
--                   The_Slot        : Bgrb_Frames.Slots;
--                   To_Value        : Slot.Object) is
-- begin
--     Server.Change (What_Class_Name, The_Fact, The_Slot, To_Value);
-- end Change;



-- procedure Update is
-- begin
--     Server.Update;
-- end Update;

--end Bgrb_Fact_Base_Server;

E3 Meta Data

    nblk1=7
    nid=6
    hdr6=c
        [0x00] rec0=25 rec1=00 rec2=01 rec3=066
        [0x01] rec0=22 rec1=00 rec2=07 rec3=00e
        [0x02] rec0=17 rec1=00 rec2=02 rec3=010
        [0x03] rec0=14 rec1=00 rec2=03 rec3=066
        [0x04] rec0=22 rec1=00 rec2=04 rec3=032
        [0x05] rec0=0e rec1=00 rec2=05 rec3=001
        [0x06] rec0=bf rec1=cc rec2=00 rec3=036
    tail 0x2174fb398867a4970dff4 0x42a00088462063c03
Free Block Chain:
  0x6: 0000  00 00 03 fc 80 06 20 20 6c 6f 6f 70 06 00 10 2d  ┆        loop   -┆