|
|
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: B T
Length: 6984 (0x1b48)
Types: TextFile
Names: »B«
└─⟦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 String_Utilities;
separate (Object_Management_System)
package body Any_Object is
function Is_Library (Any_Object : Library_Object) return Boolean is
begin
return Any_Object.Subclass = Library_Subclass;
end Is_Library;
function Is_C_Unit (Any_Object : Library_Object) return Boolean is
begin
return Any_Object.Subclass = C_Unit_Subclass;
end Is_C_Unit;
function Is_Unix_File (Any_Object : Library_Object) return Boolean is
begin
return Any_Object.Subclass = Unix_File_Subclass;
end Is_Unix_File;
function Make_Library_Object
(The_Name : String;
The_Subclass : Subclass_Enumeration :=
Object_Management_System.Unix_File_Subclass)
return Library_Object is
Obj : Directory.Object;
begin
begin
Directory.Any_Object.Open (Obj, The_Name);
exception
when Directory.Non_Existent_Object_Error =>
return Nil;
end;
case The_Subclass is
when Library_Subclass =>
return Library_Object'
(Subclass => Library_Subclass,
Name => Gs.Value
(Directory.Naming.Simple_Name (Obj)),
Unix_Library => Obj,
Kind => Library.A_Directory);
when Unix_File_Subclass =>
return Library_Object'(Subclass => Unix_File_Subclass,
Name => Gs.Value (The_Name),
Unix_File => Obj);
when others =>
return Nil;
end case;
end Make_Library_Object;
procedure Create (The_Object : in out Library_Object;
The_Name : String;
The_Subclass : Subclass_Enumeration :=
Object_Management_System.Unix_File_Subclass) is
Obj : Directory.Object;
begin
case The_Subclass is
when Library_Subclass =>
Library.Create (The_Library => The_Object,
Name => The_Name,
Kind => Library.A_Directory);
when Unix_File_Subclass =>
begin
Directory.Any_Object.Create
(The_Object => Obj,
Object_Name => The_Name,
Object_Class => Directory.File_Class,
Object_Owner_Permissions =>
Directory.Statistics.R_W_Permission,
Object_Group_Permissions =>
Directory.Statistics.R_W_Permission,
Object_Other_Permissions =>
Directory.Statistics.R_W_Permission);
The_Object := Library_Object'
(Subclass => Unix_File_Subclass,
Name => Gs.Value (The_Name),
Unix_File => Obj);
exception
when Directory.Already_Existent_Object_Error =>
The_Object := Nil;
when Directory.System_Error =>
The_Object := Nil;
end;
when others =>
The_Object := Nil;
end case;
end Create;
procedure Move (The_Object : in out Library_Object; New_Name : String) is
begin
The_Object.Name := Gs.Value (New_Name);
case The_Object.Subclass is
when Library_Subclass =>
Directory.Any_Object.Rename (The_Object.Unix_Library, New_Name);
when Unix_File_Subclass =>
Directory.Any_Object.Rename (The_Object.Unix_File, New_Name);
when others =>
null;
end case;
end Move;
procedure Delete (The_Object : in out Library_Object) is
begin
case The_Object.Subclass is
when Library_Subclass =>
Directory.Any_Object.Delete (The_Object.Unix_Library);
when Unix_File_Subclass =>
Directory.Any_Object.Delete (The_Object.Unix_File);
when others =>
null;
end case;
The_Object := Nil;
end Delete;
function Enclosing_Library
(The_Object : Library_Object) return Library_Object is
Obj : Directory.Object;
begin
case The_Object.Subclass is
when Library_Subclass =>
Obj := Directory.Traversal.Parent
(Directory.Traversal.Parent
(The_Object.Unix_Library));
when Unix_File_Subclass =>
Obj := Directory.Traversal.Parent
(Directory.Traversal.Parent (The_Object.Unix_File));
when others =>
return Nil;
end case;
return Library_Object'
(Subclass => Library_Subclass,
Name => Gs.Value (Directory.Naming.Simple_Name (Obj)),
Unix_Library => Obj,
Kind => Library.A_Directory);
exception
when Directory.Non_Existent_Object_Error =>
return Nil;
end Enclosing_Library;
function Image (The_Object : Library_Object) return String is
begin
case The_Object.Subclass is
when Library_Subclass =>
return Normalise (Gs.Image (The_Object.Name), 30) &
" " & Image (The_Object.Subclass) & " (" &
Library.Image (Library.Kind (The_Object)) & ")";
when C_Unit_Subclass =>
return Normalise (Gs.Image (The_Object.Name), 30) & " " &
Normalise
(C_Unit.Image (C_Unit.State (The_Object)), 3) &
Image (The_Object.Subclass) & " (" &
C_Unit.Image (C_Unit.Kind (The_Object)) & ")";
when Unix_File_Subclass =>
return Normalise (Gs.Image (The_Object.Name), 30) &
" " & Image (The_Object.Subclass);
when others =>
return " ";
end case;
end Image;
function Value (The_String : String) return Library_Object is
Iter : Iterator;
I : constant Natural := String_Utilities.Locate
(' ', The_String, False);
Str : constant String := The_String (The_String'First .. I - 1);
Lib_Obj : Library_Object := Nil;
begin
Reset (Iter);
while not Done (Iter) loop
Lib_Obj := Value (Iter);
if Gs.Image (Lib_Obj.Name) = Str then
return Lib_Obj;
end if;
Next (Iter);
end loop;
return Nil;
end Value;
end Any_Object;