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

⟦7a78505d1⟧ Ada Source

    Length: 10240 (0x2800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Method, seg_0554ec

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



with Bounded_String;  
with Byte_Defs, Utils;
use Bounded_String;
package body Method is  
    function Null_Method return Object is
    begin
        return (Parametre.Null_Variable_String, Liste_Parametre.Nil,
                Liste_Parametre.Nil, Sub_List.Nil, Filt_List.Nil);
    end Null_Method;
    function Image (O : Object) return String is  
        Subscripted : Parametre.Variable_String;
        Filtration : Parametre.Variable_String;
        In_Param : Parametre.Variable_String;
        Out_Param : Parametre.Variable_String;
        Result : Parametre.Variable_String;
    begin  
        Subscripted := Get_Subscripted_Object (O);
        Filtration := Get_Filtration_Object (O);
        In_Param := Get_In_Parameter (O => O);
        Out_Param := Get_Out_Parameter (O => O);
        Append (Result, O.Name);
        Append (Result, Parametre_Defs.Message_Separator);
        Append (Result, Natural'Image (Get_In_Parameter_Number (O)));
        Append (Result, Parametre_Defs.Message_Separator);
        Append (Result, In_Param);
        Append (Result, Natural'Image (Get_Out_Parameter_Number (O)));
        Append (Result, Parametre_Defs.Message_Separator);
        Append (Result, Out_Param);
        Append (Result, Subscripted);
        Append (Result, Filtration);
        return Image (Result);
    end Image;


    function Get_Method_Name (O : Object) return Parametre.Variable_String is
    begin
        return O.Name;
    end Get_Method_Name;


    function Get_In_Parameter_Number (O : Object) return Natural is
    begin
        return Liste_Parametre.Length (O.In_Parameters);
    end Get_In_Parameter_Number;


    function Get_In_Parameter (O : Object) return Parametre.Variable_String is  
        Parameter : Parametre.Variable_String;
        Iter : Liste_Parametre.Iterator;
    begin  
        Liste_Parametre.Init (Iter => Iter, L => O.In_Parameters);
        while not Liste_Parametre.Done (Iter) loop
            Append (Parameter, Image (Liste_Parametre.Value (Iter)));
            Append (Parameter, Parametre_Defs.Message_Separator);
            Liste_Parametre.Next (Iter);
        end loop;
        return Parameter;
    end Get_In_Parameter;


    function Get_Out_Parameter_Number (O : Object) return Natural is
    begin
        return Liste_Parametre.Length (O.Out_Parameters);
    end Get_Out_Parameter_Number;


    function Get_Out_Parameter (O : Object) return Parametre.Variable_String is
        Parameter : Parametre.Variable_String;
        Iter : Liste_Parametre.Iterator;
    begin
        Liste_Parametre.Init (Iter => Iter, L => O.Out_Parameters);
        while not Liste_Parametre.Done (Iter) loop
            Append (Parameter, Image (Liste_Parametre.Value (Iter)));
            Append (Parameter, Parametre_Defs.Message_Separator);

            Liste_Parametre.Next (Iter);
        end loop;
        return Parameter;
    end Get_Out_Parameter;


    function Get_Subscripted_Object (O : Object)
                                    return Parametre.Variable_String is


        Parameter : Parametre.Variable_String;
        Iter : Sub_List.S_Iterator;

    begin
        Sub_List.Init (Iter => Iter, L => O.Subscripted_Object);
        while not Sub_List.Done (Iter) loop


            Append (Parameter, Utils.Byte_String_To_String
                                  (Byte_Defs.Byte_String
                                      (Sub_List.Value (Iter))));
            Append (Parameter, Parametre_Defs.Message_Separator);

            Sub_List.Next (Iter);
        end loop;
        return Parameter;





    end Get_Subscripted_Object;

    function Get_Sub_List (O : Object) return Sub_List.S_List is

    begin
        return O.Subscripted_Object;
    end Get_Sub_List;

    function Get_Filtration_Object (O : Object)
                                   return Parametre.Variable_String is  
        Parameter : Parametre.Variable_String;
        Iter : Filt_List.S_Iterator;
    begin
        Filt_List.Init (Iter => Iter, L => O.Filtration_Object);
        while not Filt_List.Done (Iter) loop
            Append (Parameter, Utils.Byte_String_To_String
                                  (Byte_Defs.Byte_String
                                      ((Filt_List.Value (Iter)))));

            Append (Parameter, Parametre_Defs.Message_Separator);
            Filt_List.Next (Iter);
        end loop;
        return Parameter;
    end Get_Filtration_Object;


    procedure Init (O : out Object;
                    Name : Parametre.Variable_String;  
                    In_Parameters : Liste_Parametre.List;  
                    Out_Parameters : Liste_Parametre.List) is
    begin
        O.Name := Name;
        O.In_Parameters := In_Parameters;
        O.Out_Parameters := Out_Parameters;
    end Init;


    procedure Add_Subscripted_Object
                 (O : in out Object;
                  The_Object : Parametre_Defs.Identificator) is
    begin  
        if not Sub_List.Is_In (The_Object, O.Subscripted_Object) then
            O.Subscripted_Object := Sub_List.Make
                                       (The_Object, O.Subscripted_Object);
        end if;
    end Add_Subscripted_Object;


    procedure Remove_Subscripted_Object
                 (O : in out Object;
                  The_Object : Parametre_Defs.Identificator) is
    begin
        if Sub_List.Is_In (The_Object, O.Subscripted_Object) then
            Sub_List.Remove (The_Object, O.Subscripted_Object);
        end if;
    end Remove_Subscripted_Object;


    procedure Add_Filtration_Object
                 (O : in out Object;
                  The_Object : Parametre_Defs.Identificator) is
    begin
        O.Filtration_Object := Filt_List.Make (The_Object, O.Filtration_Object);

    end Add_Filtration_Object;


    procedure Remove_Filtration_Object
                 (O : in out Object;
                  The_Object : Parametre_Defs.Identificator) is
    begin  
        if Filt_List.Is_In (The_Object, O.Filtration_Object) then
            Filt_List.Remove (The_Object, O.Filtration_Object);
        end if;

    end Remove_Filtration_Object;


    procedure Free (O : in out Object) is

    begin
        Sub_List.Free (O.Subscripted_Object);
        Filt_List.Free (O.Filtration_Object);
        Liste_Parametre.Free (O.In_Parameters);
        Liste_Parametre.Free (O.Out_Parameters);
    end Free;

    function Is_Subscripted
                (O : in Object; Method : Parametre_Defs.Identificator)
                return Boolean is

    begin
        return Sub_List.Is_In (Method, O.Subscripted_Object);  
    end Is_Subscripted;
    function Is_Filtration
                (O : in Object; Method : Parametre_Defs.Identificator)
                return Boolean is

    begin
        return Filt_List.Is_In (Method, O.Filtration_Object);


    end Is_Filtration;

    function Equal (Left : Parametre.Variable_String; Right : Object)
                   return Boolean is
    begin
        return Right.Name = Left;
    end Equal;
end Method;

E3 Meta Data

    nblk1=9
    nid=0
    hdr6=12
        [0x00] rec0=19 rec1=00 rec2=01 rec3=01a
        [0x01] rec0=04 rec1=00 rec2=09 rec3=004
        [0x02] rec0=1c rec1=00 rec2=02 rec3=022
        [0x03] rec0=1f rec1=00 rec2=03 rec3=018
        [0x04] rec0=22 rec1=00 rec2=08 rec3=02e
        [0x05] rec0=03 rec1=00 rec2=04 rec3=01a
        [0x06] rec0=1c rec1=00 rec2=05 rec3=020
        [0x07] rec0=21 rec1=00 rec2=06 rec3=004
        [0x08] rec0=20 rec1=00 rec2=07 rec3=000
    tail 0x2175f5ffa87bca01cf59b 0x42a00088462060003