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

⟦f61edd019⟧ Ada Source

    Length: 15360 (0x3c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Any_Object, package body Directory, package body Naming, package body Statistics, package body Traversal, seg_0225a1

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 Set_Generic;
with String_Utilities;
with Unbounded_String;
package body Directory is

    package Su renames String_Utilities;
    package Us is new Unbounded_String (Default_Maximum_Length => 128);

    type Object_Data is
        record
            Name      : Us.Variable_String;
            Class     : Class_Enumeration := Unknown_Class;
            Sub_Class : Subclass;
        end record;

    type Subclass_Data is
        record
            Id   : Natural;
            Name : Us.Variable_String;
        end record;

    package Object_Set is new Set_Generic (Element => Object);

    type Iterator_Implementation is new Object_Set.Iterator;


    function Nil return Object is
    begin
        return null;
    end Nil;


    function Is_Nil (The_Object : Object) return Boolean is
    begin
        return The_Object = null;
    end Is_Nil;


    function Hash (The_Object : Object) return Integer is
    begin
        return Su.Hash_String (Us.Image (The_Object.Name));
    end Hash;


    function Same_Object (Left, Right : Object) return Boolean is
    begin
        return Su.Equal (Str1        => Us.Image (Left.Name),
                         Str2        => Us.Image (Right.Name),
                         Ignore_Case => False) and Left.Class = Right.Class;
    end Same_Object;


    function Class (The_Object : Object) return Class_Enumeration is
    begin
        return The_Object.Class;
    end Class;


    function Equal (Class1, Class2 : Class_Enumeration) return Boolean is
    begin
        return Class1 = Class2;
    end Equal;


    function Image (The_Class : Class_Enumeration) return String is
    begin
        [statement]
    end Image;


    function Value (S : String) return Class_Enumeration is
    begin
        [statement]
    end Value;


    function Nil return Subclass is
    begin
        [statement]
    end Nil;


    function Is_Nil (The_Subclass : Subclass) return Boolean is
    begin
        [statement]
    end Is_Nil;


    function Unique (The_Subclass : Subclass) return Integer is
    begin
        [statement]
    end Unique;


    function Subclass_Of (The_Object : Object) return Subclass is
    begin
        return The_Object.Sub_Class;
    end Subclass_Of;


    function Image (The_Subclass : Subclass) return String is
    begin
        return Us.Image (The_Subclass.Name);
    end Image;


    function Value (S : String) return Subclass is
    begin
        [statement]
    end Value;


    function Class_Of (The_Subclass : Subclass) return Class_Enumeration is
    begin
        [statement]
    end Class_Of;


    function Same_Subclass (Left, Right : Subclass) return Boolean is
    begin
        return Left.Id = Right.Id;
    end Same_Subclass;


    procedure Next (Iter : in out Iterator) is
    begin
        [statement]
    end Next;


    function Done (Iter : Iterator) return Boolean is
    begin
        [statement]
    end Done;


    function Value (Iter : Iterator) return Object is
    begin
        [statement]
    end Value;


    procedure Reset (Iter : Iterator) is
    begin
        [statement]
    end Reset;


    package body Naming is separate;
    package body Traversal is separate;
    package body Any_Object is separate;
    package body Statistics is separate;

end Directory;

E3 Meta Data

    nblk1=e
    nid=4
    hdr6=a
        [0x00] rec0=2a rec1=00 rec2=01 rec3=00a
        [0x01] rec0=00 rec1=00 rec2=0b rec3=058
        [0x02] rec0=2a rec1=00 rec2=09 rec3=03e
        [0x03] rec0=2d rec1=00 rec2=0e rec3=010
        [0x04] rec0=1b rec1=00 rec2=02 rec3=000
        [0x05] rec0=06 rec1=00 rec2=04 rec3=000
        [0x06] rec0=0a rec1=00 rec2=0e rec3=000
        [0x07] rec0=29 rec1=00 rec2=0b rec3=018
        [0x08] rec0=0a rec1=00 rec2=0e rec3=000
        [0x09] rec0=10 rec1=00 rec2=02 rec3=000
        [0x0a] rec0=0a rec1=00 rec2=07 rec3=000
        [0x0b] rec0=09 rec1=00 rec2=0b rec3=000
        [0x0c] rec0=1b rec1=00 rec2=0b rec3=078
        [0x0d] rec0=0f rec1=00 rec2=0d rec3=000
    tail 0x2171e088883946ea4245f 0x42a00088462062803
Free Block Chain:
  0x4: 0000  00 06 00 b9 80 1f 61 63 6b 61 67 65 20 62 6f 64  ┆      ackage bod┆
  0x6: 0000  00 0d 02 24 80 38 20 20 20 20 20 20 20 20 20 20  ┆   $ 8          ┆
  0xd: 0000  00 0a 00 28 00 1d 20 20 20 20 70 61 63 6b 61 67  ┆   (      packag┆
  0xa: 0000  00 03 03 fb 80 2b 69 6f 6e 20 28 41 5f 4e 61 6d  ┆     +ion (A_Nam┆
  0x3: 0000  00 07 03 fc 80 0b 20 20 20 20 20 20 20 20 20 20  ┆                ┆
  0x7: 0000  00 0c 00 b8 80 0f 61 72 69 61 62 6c 65 5f 53 74  ┆      ariable_St┆
  0xc: 0000  00 08 00 27 00 24 20 20 20 20 20 20 20 20 66 75  ┆   ' $        fu┆
  0x8: 0000  00 05 03 fc 80 04 6c 69 63 79 04 00 2a 20 20 20  ┆      licy  *   ┆
  0x5: 0000  00 00 01 7f 80 13 61 6c 6c 65 64 20 64 65 63 6c  ┆      alled decl┆