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

⟦caba76194⟧ Ada Source

    Length: 14336 (0x3800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body General_Data_Base, seg_057ec7, seg_05826f

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



package body General_Data_Base is

    use Methode;
    use Filter;
    use Spy;
    use Spy_List;
    use Class;

    procedure Create_General_Data_Base
                 (The_Data_Base : out T_General_Data_Base) is

    begin
        Initialize (The_Data_Base.One_Method_List);
        Initialize (The_Data_Base.One_Agent_List);
        Create_Agent_Nb_Generator (The_Data_Base.One_Agent_Nb_Generator);
    end Create_General_Data_Base;


    procedure Registration (The_Data_Base : in out T_General_Data_Base;
                            The_Object : in Object;
                            The_Agent_Nb : in out Agent_Nb.T_Agent_Nb;
                            The_Class : in Var_String.V_String) is
        One_Agent : Agent.T_Agent;
        The_Method_List_Iter : Method_Set.Iterator;
        One_Method_Name : constant String := " ";
    begin
        Get_Agent_Nb (The_Object, The_Data_Base.One_Agent_Nb_Generator,
                      The_Agent_Nb);
        Agent.Create_Agent (One_Agent);

        Agent.Init_Agent (One_Agent, The_Agent_Nb, Value (The_Class),
                          Value_Method_Name (Var_String.Value
                                                (One_Method_Name)));
        if not (Agent_Set.Is_Member
                   (The_Data_Base.One_Agent_List, One_Agent)) then
            Add (The_Data_Base.One_Agent_List, One_Agent);
        end if;
    end Registration;


    procedure Unregistration (The_Data_Base : in out T_General_Data_Base;
                              The_Agent_Nb : in Agent_Nb.T_Agent_Nb) is
    begin
        Delete_One_Agent (The_Agent_Nb, The_Data_Base.One_Agent_Nb_Generator);
    end Unregistration;


    procedure Publication (The_Data_Base : in out T_General_Data_Base;
                           The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
                           The_Method_Name : in Var_String.V_String;
                           The_Parameter : in Var_String.V_String) is

        One_Method : T_Method;
        The_Method_List_Iter : Method_Set.Iterator;
    begin


        Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
        loop
            exit when Done (The_Method_List_Iter);

            exit when String_Utilities.Equal
                         (Var_String.Image
                             (Image_Method_Name
                                 (Methode.Consult_Name
                                     (Method_Set.Value
                                         (The_Method_List_Iter)))),
                          Var_String.Image
                             (Image_Method_Name
                                 (Value_Method_Name (The_Method_Name))));

            Next (The_Method_List_Iter);
        end loop;
        Create_Method (One_Method);
        if not (Done (The_Method_List_Iter)) then
            One_Method := Method_Set.Value (The_Method_List_Iter);
            Methode.Add_Agent (One_Method, The_Agent_Nb);
            Method_Set.Delete (The_Data_Base.One_Method_List,
                               Method_Set.Value (The_Method_List_Iter));
            Method_Set.Add (The_Data_Base.One_Method_List, One_Method);
        else
            One_Method := Init_Method
                             (One_Method, Value_Method_Name (The_Method_Name),
                              Value_Parameter (The_Parameter), The_Agent_Nb);

            Add (The_Data_Base.One_Method_List, One_Method);
        end if;
    end Publication;


    procedure Unpublication (The_Data_Base : in out T_General_Data_Base;
                             The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
                             The_Method_Name : in Var_String.V_String) is
        One_Method : T_Method;
        One_Method_Name : T_Method_Name;
        One_Agent : Agent.T_Agent;
        One_Agent_Nb : Agent_Nb.T_Agent_Nb;
        The_Method_List_Iter : Method_Set.Iterator;
        The_Agent_List_Iter : Agent_Set.Iterator;
    begin
        Init (The_Agent_List_Iter, The_Data_Base.One_Agent_List);
        Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
        loop
            exit when Done (The_Agent_List_Iter);
            Agent.Consult_Agent_Nb (Value (The_Agent_List_Iter), One_Agent_Nb);
            exit when Agent_Nb.Is_Equal (One_Agent_Nb, The_Agent_Nb);
            Next (The_Agent_List_Iter);
        end loop;
        if not (Done (The_Agent_List_Iter)) then
            One_Agent := Value (The_Agent_List_Iter);
            Agent.Remove_Method
               (Value_Method_Name (The_Method_Name), One_Agent);
            Delete (The_Data_Base.One_Agent_List, Value (The_Agent_List_Iter));
            Add (The_Data_Base.One_Agent_List, One_Agent);
        end if;
        loop
            exit when Done (The_Method_List_Iter);
            -- exit when Consult_Name (Value (The_Method_List_Iter)) =
            --   Value_Method_Name (TheMethod_Name);
            exit when String_Utilities.Equal
                         (Var_String.Image
                             (Image_Method_Name
                                 (Methode.Consult_Name
                                     (Method_Set.Value
                                         (The_Method_List_Iter)))),
                          Var_String.Image
                             (Image_Method_Name
                                 (Value_Method_Name (The_Method_Name))));
            Next (The_Agent_List_Iter);
        end loop;
        if not (Done (The_Method_List_Iter)) then
            One_Method := Value (The_Method_List_Iter);
            Delete_Agent (One_Method, The_Agent_Nb);
            Delete (The_Data_Base.One_Method_List,
                    Value (The_Method_List_Iter));
            Add (The_Data_Base.One_Method_List, One_Method);
        end if;


    end Unpublication;

    procedure Request (The_Data_Base : in out T_General_Data_Base;
                       The_Method : in Var_String.V_String;
                       The_Agent_Nb_Set : out Agent_Nb_Set.Set;
                       The_Parameter : out Var_String.V_String;
                       Request_Result : out Boolean) is
        The_Method_List_Iter : Method_Set.Iterator;
        One_Agent_Nb_Set : Agent_Nb_Set.Set;
        Nothing : constant String := " ";
    begin
        Init (The_Method_List_Iter, The_Data_Base.One_Method_List);
        loop

            exit when Done (The_Method_List_Iter);
            exit when String_Utilities.Equal
                         (Var_String.Image
                             (Image_Method_Name
                                 (Methode.Consult_Name
                                     (Method_Set.Value
                                         (The_Method_List_Iter)))),
                          Var_String.Image
                             (Image_Method_Name
                                 (Value_Method_Name (The_Method))));
            Next (The_Method_List_Iter);
        end loop;
        if not (Done (The_Method_List_Iter)) then
            Request_Result := True;
            The_Parameter := Image_Parameter
                                (Consult_Parameter (Value
                                                       (The_Method_List_Iter)));
            The_Agent_Nb_Set := Consult_Agent_Set
                                   (Value (The_Method_List_Iter));
        else
            --give back an empty agent nb set;
            Agent_Nb_Set.Initialize (One_Agent_Nb_Set);
            The_Agent_Nb_Set := One_Agent_Nb_Set;
            --give back an empty parameter field
            The_Parameter := Var_String.Value (Nothing);
            Request_Result := False;
        end if;

    end Request;
    procedure Get_Com_Chanel (The_Data_Base : in out T_General_Data_Base;
                              The_Agent_Nb : in Agent_Nb.T_Agent_Nb;
                              The_Object_Result : out Com_Chanel.Object) is

    begin
        Agent_Nb_Generator.Get_Object
           (The_Agent_Nb, The_Data_Base.One_Agent_Nb_Generator,
            The_Object_Result);

    end Get_Com_Chanel;
end General_Data_Base;

E3 Meta Data

    nblk1=d
    nid=c
    hdr6=16
        [0x00] rec0=1e rec1=00 rec2=01 rec3=000
        [0x01] rec0=17 rec1=00 rec2=0a rec3=07c
        [0x02] rec0=1a rec1=00 rec2=06 rec3=048
        [0x03] rec0=16 rec1=00 rec2=04 rec3=022
        [0x04] rec0=14 rec1=00 rec2=02 rec3=04e
        [0x05] rec0=00 rec1=00 rec2=0b rec3=002
        [0x06] rec0=17 rec1=00 rec2=09 rec3=070
        [0x07] rec0=00 rec1=00 rec2=07 rec3=014
        [0x08] rec0=15 rec1=00 rec2=03 rec3=05c
        [0x09] rec0=16 rec1=00 rec2=0d rec3=024
        [0x0a] rec0=09 rec1=00 rec2=05 rec3=000
        [0x0b] rec0=f1 rec1=80 rec2=00 rec3=000
        [0x0c] rec0=24 rec1=00 rec2=17 rec3=2f6
    tail 0x217645fb887c78867ecd2 0x42a00088462060003
Free Block Chain:
  0xc: 0000  00 08 00 0e 80 0b 5f 41 67 65 6e 74 5f 4e 62 29  ┆      _Agent_Nb)┆
  0x8: 0000  00 00 00 a7 80 07 5f 4f 62 6a 65 63 74 07 00 3f  ┆      _Object  ?┆