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

⟦7365f674f⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package T_Value, seg_0491cf

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, Text_Io;

--GESTION D UN TYPE DE DONNEE POLYMORPHE
package T_Value is

    Error_Integer_Value : exception;
    Error_Boolean_Value : exception;
    Error_Real_Value : exception;
    Error_String_Value : exception;
    Error_Equal_Value : exception;

    Max_Value_String : constant := 255;
    type Kind_Of_Values is (Undefined_Value, Integer_Value,
                            String_Value, Boolean_Value);

    type Object (Kind : Kind_Of_Values := Undefined_Value) is private;
    Null_Value : constant Object;
    subtype V_File is Text_Io.File_Type;

--NEW_VALUE
--Creation  d un objet valeur
    procedure New_Value (V : out T_Value.Object);

--DISPOSE
--Destruction d un objet valeur
    procedure Dispose (V : in out T_Value.Object);

--KIND_OF_VALUE
-- renvoie le type effectif de l objet valeur
    function Kind_Of_Value (V : in T_Value.Object) return Kind_Of_Values;

--GET
-- renvoie la valeur effective de l objet aleur
    function Get (V : in T_Value.Object) return Integer;
    function Get (V : in T_Value.Object) return Boolean;
    function Get (V : in T_Value.Object) return String;

-- EQUAL
-- teste si 2 objets valeur sont identiques
    function Equal (V1 : in T_Value.Object; V2 : in T_Value.Object)
                   return Boolean;

-- IMAGE
-- renvoie un chaine image de la valeur de l objet
    function Image (V : in T_Value.Object) return String;

--VALUE_TO_FILE (pas implementee)
    procedure Value_To_File (V : in T_Value.Object; F : V_File);

--UNDEFINE
--Inhibition du typage de l objet valeur
    procedure Undefine (V : in out T_Value.Object);

--SET
-- Affectation d une valeur effective dans un objet valeur
    procedure Set (V : in out T_Value.Object; I : in Integer);
    procedure Set (V : in out T_Value.Object; S : in String);
    procedure Set (V : in out T_Value.Object; B : in Boolean);

-- COPY
-- copie en profondeur d un objet valeur
    procedure Copy (To_Value : in out T_Value.Object;
                    The_Value : in T_Value.Object);

-- SET_USING_FILE (pas implementee)
    procedure Set_Value_Using_File (V : in out T_Value.Object; F : V_File);

private

    type String_Access is access String;

    type Object (Kind : Kind_Of_Values := Undefined_Value) is
        record
            case Kind is
                when Integer_Value =>
                    The_Integer : Integer;
                when String_Value =>
                    The_String : String_Access;
                when Boolean_Value =>
                    The_Boolean : Boolean;
                when Undefined_Value =>
                    null;
            end case;
        end record;

    Null_Value : constant Object := (Kind => Undefined_Value);

end T_Value;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=22 rec1=00 rec2=01 rec3=054
        [0x01] rec0=00 rec1=00 rec2=04 rec3=002
        [0x02] rec0=1c rec1=00 rec2=02 rec3=050
        [0x03] rec0=1c rec1=00 rec2=03 rec3=000
    tail 0x2174d6d98865b47ba6519 0x42a00088462060003