DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦f40c80c1d⟧ TextFile

    Length: 7507 (0x1d53)
    Types: TextFile
    Names: »V«

Derivation

└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─ ⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─ ⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─ ⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─ ⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 

TextFile

with Directory;
with Our_Generic_String;
package Object_Management_System is


    -- IMPORTANT :
    --
    -- pour l'instant, uniquement les library_object de subclass
    -- library_subclass et unix_file_subclass sont traites....
    --
    -- est presente egalement une ebauche des library_object de subclass
    -- c_unit_subclass



    type Subclass_Enumeration is new Natural range 0 .. 63;

    Unknown_Subclass : constant Subclass_Enumeration := 0;
    Library_Subclass : constant Subclass_Enumeration := 1;
    C_Unit_Subclass : constant Subclass_Enumeration := 2;
    Shell_Subclass : constant Subclass_Enumeration := 3;
    Comp_Lib_Subclass : constant Subclass_Enumeration := 4;
    Archive_Subclass : constant Subclass_Enumeration := 5;
    Image_Subclass : constant Subclass_Enumeration := 6;
    Unix_File_Subclass : constant Subclass_Enumeration := 7;


    type Library_Object (Subclass : Subclass_Enumeration := Unknown_Subclass) is
       private;

    function Nil return Library_Object;
    function Is_Nil (The_Object : Library_Object) return Boolean;

    function In_Text (The_Object : Library_Object) return String;



    function Subclass_Of (The_Object : Library_Object)
                         return Subclass_Enumeration;
    function Equal (Subclass1, Subclass2 : Subclass_Enumeration) return Boolean;
    function Image (The_Subclass : Subclass_Enumeration) return String;
    function Value (S : String) return Subclass_Enumeration;

    type Iterator is private;

    procedure Reset (Iter : in out Iterator);
    procedure Next (Iter : in out Iterator);
    function Done (Iter : Iterator) return Boolean;
    function Value (Iter : Iterator) return Library_Object;




    package Any_Object is

        function Is_Library (Any_Object : Library_Object) return Boolean;

        function Is_C_Unit (Any_Object : Library_Object) return Boolean;

        function Is_Unix_File (Any_Object : Library_Object) return Boolean;

        function Make_Library_Object
                    (The_Name : String;
                     The_Subclass : Subclass_Enumeration :=
                        Object_Management_System.Unix_File_Subclass)
                    return Library_Object;

        procedure Create (The_Object : in out Library_Object;
                          The_Name : String;
                          The_Subclass : Subclass_Enumeration :=
                             Object_Management_System.Unix_File_Subclass);

        procedure Move (The_Object : in out Library_Object; New_Name : String);

        procedure Delete (The_Object : in out Library_Object);

        function Enclosing_Library
                    (The_Object : Library_Object) return Library_Object;

        function Image (The_Object : Library_Object) return String;

        -- la fonction image renvoie une string contenant dans l'ordre :
        -- "nom_de_l_objet  etat subclass type

        function Value (The_String : String) return Library_Object;

        -- renvoie le library_object qui correspond a la ligne donnee en
        -- parametre.
        -- Ceci en tenant compte de l'ordre indique pour la fonction image.


    end Any_Object;

    package Library is

        type Library_Kind is (Not_A_Library, A_Directory,
                              Subsystem_Spec, Subsystem_Body);

        function Kind (The_Library : Library_Object) return Library_Kind;

        function Image (The_Kind : Library_Kind) return String;

        function Is_Directory (The_Library : Library_Object) return Boolean;

        function Is_Subsystem_Spec
                    (The_Library : Library_Object) return Boolean;

        function Is_Subsystem_Body
                    (The_Library : Library_Object) return Boolean;


        function Root return Library_Object;

        function Home return Library_Object;

        function Enclosing_Library return Library_Object;
        procedure Create (The_Library : in out Library_Object;
                          Name : String;
                          Kind : Library_Kind);

        function Child (The_Library : Library_Object; Child_Name : String)
                       return Library_Object;

        function Children (The_Library : Library_Object;
                           Subclass : Subclass_Enumeration :=
                              Object_Management_System.Unknown_Subclass)
                          return Iterator;

    end Library;

    package C_Unit is

        type Unit_Kind is (Not_A_C_Unit, C_Main, C_Spec, C_Body);

        type Unit_State is (Nonexistent, Source, Compiled, Linked);

        function Image (The_Unit_Kind : Unit_Kind) return String;

        function Image (The_Unit_State : Unit_State) return String;

        function Kind (The_C_Unit : Library_Object) return Unit_Kind;

        function State (The_C_Unit : Library_Object) return Unit_State;

        function Is_Spec (The_C_Unit : Library_Object) return Boolean;

        function Is_Body (The_C_Unit : Library_Object) return Boolean;

        function Is_Main (The_C_Unit : Library_Object) return Boolean;

        function Is_Source (The_C_Unit : Library_Object) return Boolean;

        function Is_Compiled (The_C_Unit : Library_Object) return Boolean;

        function Is_Linked (The_C_Unit : Library_Object) return Boolean;

        procedure Create (The_C_Unit : in out Library_Object;
                          Name : String;
                          Kind : Unit_Kind);

    end C_Unit;

    package Unix_View is

        function Get_Iterator_On_Files return Directory.Iterator;

        function Image (The_Object : Directory.Object) return String;

        -- renvoie une string contenant les informations dans l'ordre suivant :
        -- "nom_du_fichier type droits proprietaire taille
        --         date_de_derniere_modification"

        function Value (The_String : String) return Directory.Object;

        -- renvoie le directory.object (le fichier) correspondant a la
        -- ligne donnee en parametre.
        -- Utilise l'ordre defini ci_dessus pour retrouver cette ligne

        function Library_Object_Of
                    (The_Object : Directory.Object) return Library_Object;

        -- renvoie le library_object correspondant au directory_object donnee
        -- en parametre

    end Unix_View;

private

    package Gs is new Our_Generic_String (Default_Maximal_Length => 256);

    type Library_Object (Subclass : Subclass_Enumeration := Unknown_Subclass) is
        record
            Name : Gs.Object;
            case Subclass is
                when Library_Subclass =>
                    Unix_Library : Directory.Object := Directory.Nil;
                    Kind : Library.Library_Kind;
                when C_Unit_Subclass =>
                    C_Kind : C_Unit.Unit_Kind;
                    C_State : C_Unit.Unit_State;
                    Source_File : Directory.Object := Directory.Nil;
                    Object_File : Directory.Object := Directory.Nil;
                    Exec_File : Directory.Object := Directory.Nil;
                when Unix_File_Subclass =>
                    Unix_File : Directory.Object := Directory.Nil;
                when Unknown_Subclass =>
                    null;
                when others =>
                    Unix_Object : Directory.Object := Directory.Nil;
            end case;
        end record;

    Maximal_Element_Number : constant := 256;

    type Iterator is new Natural range 0 .. Maximal_Element_Number;


end Object_Management_System;