|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T V
Length: 7507 (0x1d53)
Types: TextFile
Names: »V«
└─⟦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⟧
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;