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

⟦4d6631095⟧ Ada Source

    Length: 12288 (0x3000)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Message_Old, seg_04b25b

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 Message_Interchange;
with Parameter;
with Signature;
with String_Utilities;
with Text_Io;
package body Message_Old is

    Sep : Character renames Message_Interchange.Separator;

    function Sup (S : String) return String renames String_Utilities.Upper_Case;

    function Create (Class : Message_Old.Class;
                     Addressee : Natural;
                     Sender : Natural;
                     Method : Standard.Method.Object)
                    return Message_Old.Object is
    begin
        return Object'(Class, Addressee, Sender, Method);
    end Create;


    function Get_Class
                (Message_Old : Standard.Message_Old.Object) return Class is
    begin
        return Message_Old.Class;
    end Get_Class;


    function Get_Addressee
                (Message_Old : Standard.Message_Old.Object) return Natural is
    begin
        return Message_Old.Addressee;
    end Get_Addressee;


    function Get_Sender
                (Message_Old : Standard.Message_Old.Object) return Natural is
    begin
        return Message_Old.Sender;
    end Get_Sender;


    function Get_Method (Message_Old : Standard.Message_Old.Object)
                        return Method.Object is
    begin
        return Message_Old.Method;
    end Get_Method;


    function Image (Message_Old : Standard.Message_Old.Object) return String is
    begin
        return Class'Image (Message_Old.Class) & Sep &
                  Natural'Image (Message_Old.Addressee) & Sep &
                  Natural'Image (Message_Old.Sender) &
                  Sep & Method.Image (Message_Old.Method);
    end Image;


    function Value (The_String : String) return Message_Old.Object is
        S : String renames The_String;
        Addressee : Positive := The_String'First;
        Sender : Positive;
        Method : Positive;
    begin
        loop
            exit when The_String (Addressee) = Sep;
            Addressee := Addressee + 1;
        end loop;
        Sender := Addressee + 1;

        loop
            exit when The_String (Sender) = Sep;  
            Sender := Sender + 1;
        end loop;  
        Method := Sender + 1;

        loop
            exit when The_String (Method) = Sep;  
            Method := Method + 1;
        end loop;

        return Object'(Class => Message_Old.Class'Value
                                   (S (S'First .. Addressee - 1)),
                       Addressee => Natural'Value
                                       (S (Addressee + 1 .. Sender - 1)),
                       Sender => Natural'Value (S (Sender + 1 .. Method - 1)),
                       Method => Standard.Method.Value
                                    (S (Method + 1 .. S'Last)));

    end Value;


    function Create (Class : Message_Old.Class;
                     Addressee : Natural;
                     Sender : Natural;
                     Method : String;
                     Parameter_Name : String;
                     Parameter_Class : String;
                     Parameter_Value : String) return Message_Old.Object is

        Sig : Signature.Object := Signature.Create;
    begin  
        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter_Name,
                                            Class => Parameter_Class,
                                            Value => Parameter_Value),
                       At_Position => 1);

        return Message_Old.Create
                  (Class, Addressee, Sender,
                   Method => Standard.Method.Create
                                (Name => Method, Signature => Sig));
    end Create;


    function Create (Class : Message_Old.Class;
                     Addressee : Natural;
                     Sender : Natural;
                     Method : String;
                     Parameter1_Name : String;
                     Parameter1_Class : String;
                     Parameter1_Value : String;
                     Parameter2_Name : String;
                     Parameter2_Class : String;
                     Parameter2_Value : String) return Message_Old.Object is

        Sig : Signature.Object := Signature.Create;
    begin
        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter1_Name,
                                            Class => Parameter1_Class,
                                            Value => Parameter1_Value),
                       At_Position => 1);

        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter2_Name,
                                            Class => Parameter2_Class,
                                            Value => Parameter2_Value),
                       At_Position => 2);

        return Message_Old.Create
                  (Class, Addressee, Sender,
                   Method => Standard.Method.Create
                                (Name => Method, Signature => Sig));
    end Create;


    function Create (Class : Message_Old.Class;
                     Addressee : Natural;
                     Sender : Natural;
                     Method : String;
                     Parameter1_Name : String;
                     Parameter1_Class : String;
                     Parameter1_Value : String;
                     Parameter2_Name : String;
                     Parameter2_Class : String;
                     Parameter2_Value : String;
                     Parameter3_Name : String;
                     Parameter3_Class : String;
                     Parameter3_Value : String) return Message_Old.Object is

        Sig : Signature.Object := Signature.Create;
    begin
        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter1_Name,
                                            Class => Parameter1_Class,
                                            Value => Parameter1_Value),
                       At_Position => 1);

        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter2_Name,
                                            Class => Parameter2_Class,
                                            Value => Parameter2_Value),
                       At_Position => 2);

        Signature.Add (To_Signature => Sig,
                       The_Parameter => Parameter.Create
                                           (Name => Parameter3_Name,
                                            Class => Parameter3_Class,
                                            Value => Parameter3_Value),
                       At_Position => 3);

        return Message_Old.Create
                  (Class, Addressee, Sender,
                   Method => Standard.Method.Create
                                (Name => Method, Signature => Sig));

    end Create;


    procedure Set_Class (Message_Old : in out Standard.Message_Old.Object;
                         Class : Standard.Message_Old.Class) is
    begin
        Message_Old.Class := Class;
    end Set_Class;


    procedure Set_Addressee (Message_Old : in out Standard.Message_Old.Object;
                             Addressee : Natural) is
    begin
        Message_Old.Addressee := Addressee;
    end Set_Addressee;


    procedure Set_Sender (Message_Old : in out Standard.Message_Old.Object;
                          Sender : Natural) is
    begin
        Message_Old.Sender := Sender;
    end Set_Sender;
end Message_Old;

E3 Meta Data

    nblk1=b
    nid=4
    hdr6=14
        [0x00] rec0=25 rec1=00 rec2=01 rec3=01c
        [0x01] rec0=1e rec1=00 rec2=02 rec3=056
        [0x02] rec0=02 rec1=00 rec2=0b rec3=002
        [0x03] rec0=1d rec1=00 rec2=03 rec3=016
        [0x04] rec0=18 rec1=00 rec2=05 rec3=010
        [0x05] rec0=14 rec1=00 rec2=06 rec3=014
        [0x06] rec0=18 rec1=00 rec2=09 rec3=024
        [0x07] rec0=13 rec1=00 rec2=07 rec3=06a
        [0x08] rec0=1e rec1=00 rec2=0a rec3=022
        [0x09] rec0=02 rec1=00 rec2=08 rec3=000
        [0x0a] rec0=a7 rec1=62 rec2=a0 rec3=000
    tail 0x2174fef44867c486e5297 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 00 03 fa 80 24 20 20 20 20 20 20 20 20 20 20  ┆     $          ┆