|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 16384 (0x4000)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Directory, seg_0269f2, seg_027c52, seg_027ced
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦this⟧
with Our_Generic_String;
with Set_Generic;
with Calendar;
package Directory is
Already_Existent_Object_Error : exception;
Non_Existent_Object_Error : exception;
System_Error : exception;
type Object is private;
-- Objects in the directory system are accessed via Directory.Object
function Nil return Object;
function Is_Nil (The_Object : Object) return Boolean;
function Same_Object (Left, Right : Object) return Boolean;
type Class_Enumeration is new Natural range 0 .. 63;
Unknown_Class : constant Class_Enumeration := 0;
Directory_Class : constant Class_Enumeration := 1;
File_Class : constant Class_Enumeration := 2;
Link_Class : constant Class_Enumeration := 3;
Fifo_Class : constant Class_Enumeration := 4;
Socket_Class : constant Class_Enumeration := 5;
Character_Special_Class : constant Class_Enumeration := 6;
Bloc_Special_Class : constant Class_Enumeration := 7;
Multiplex_File_Class : constant Class_Enumeration := 8;
function Class (The_Object : Object) return Class_Enumeration;
function Equal (Class1, Class2 : Class_Enumeration) return Boolean;
function Image (The_Class : Class_Enumeration) return String;
function Value (S : String) return Class_Enumeration;
type Iterator is private;
procedure Next (Iter : in out Iterator);
function Done (Iter : Iterator) return Boolean;
function Value (Iter : Iterator) return Object;
procedure Reset (Iter : in out Iterator);
-- to get the message associated with the UNIX errno varaible value
function Get_Error_Message return String;
package Naming is
-- Provides mechanisms for manipulating and resolving names and for
-- establishing a context for name resolution.
subtype String_Name is String;
-- Lexically and syntactically a Directory system string name.
subtype Simple_String_Name is String;
-- A single segment of a string name.
subtype Context is Object;
-- The Directory System Object that serves as the initial context
-- for name resolution. May be any Object.
procedure Set_Default_Context (The_Context : Naming.String_Name);
procedure Set_Default_Context (The_Context : Naming.Context);
-- Establishes the default naming context for the job.
function Default_Context return Naming.String_Name;
function Default_Context return Naming.Context;
-- Returns the default name resolution context for the job.
function Absolute (The_Name : String_Name) return Boolean;
-- return true if the_name is an absolute path name
function Absolute_Name (The_Name : String_Name) return String_Name;
-- return the corresponding absolute path name
function Prefix (The_Name : String_Name) return String_Name;
-- Removes the last segment from a selected name and returns
-- the prefix.
-- Prefix ("A/B/C") => "A/B"
-- Prefix ("A") => ""
function Simple_Name (The_Name : String_Name) return Simple_String_Name;
-- Returns only the last segment of a selected name, without attributes
-- Simple_name ("A/B/C") => "C"
-- Simple_name ("A") => "A"
function Simple_Name_Without_Extension
(The_Name : String_Name) return Simple_String_Name;
function Head (The_Name : String_Name) return Simple_String_Name;
-- Returns only the first segment of a selected name.
-- Head ("A/B/C") => "A"
-- Head ("A") => "A"
-- Head ("/A") => "/"
function Tail (The_Name : String_Name) return String_Name;
-- Removes the first segment from a selected name and returns the tail.
-- Tail ("A/B/C") => "B/C"
-- Tail ("A") => ""
function Extension (A_Name : String_Name) return String;
-- Returns the Extension at the end of the given string name.
-- If the simple name of the given string name has no attributes,
-- the null string is returned.
function Full_Name (The_Object : Object) return Naming.String_Name;
-- Computes the fully qualified string name for the The_Object.
function Simple_Name (The_Object : Object) return Simple_String_Name;
-- Computes the simple name for the The_Object.
function Simple_Name_Without_Extension
(The_Object : Object) return Simple_String_Name;
end Naming;
package Traversal is
-- Provides operations for traversing the Directory System
-- in a variety of ways.
function Root return Object;
-- Returns the (somewhat special) Object corresponding to the
-- root of the universe.
function Home return Object;
-- returns the object corresponding to the home directory
function Parent (The_Object : Object) return Object;
-- Returns the parent Object for The_Object.
function Child (The_Object : Object;
Child_Name : Naming.Simple_String_Name) return Object;
-- Retrieve the named subobject.
function Children (The_Object : Object;
Pattern : Naming.Simple_String_Name := "*";
Class : Class_Enumeration := Unknown_Class)
return Iterator;
-- Initializes the iteration over the children that match the
-- specified name pattern.
-- If a class is provided, only children of that class are returned.
end Traversal;
package Statistics is
subtype User is String;
subtype Group is String;
subtype Permission_Enumeration is Integer range 0 .. 7;
None_Permission : constant Permission_Enumeration := 0;
X_Permission : constant Permission_Enumeration := 1;
W_Permission : constant Permission_Enumeration := 2;
W_X_Permission : constant Permission_Enumeration := 3;
R_Permission : constant Permission_Enumeration := 4;
R_X_Permission : constant Permission_Enumeration := 5;
R_W_Permission : constant Permission_Enumeration := 6;
R_W_X_Permission : constant Permission_Enumeration := 7;
function Time_Of_Last_Update (The_Object : Object) return Calendar.Time;
function Time_Of_Last_Read (The_Object : Object) return Calendar.Time;
function Creator (The_Object : Object) return User;
function Creator_Group (The_Object : Object) return Group;
function Object_Size (The_Object : Object) return Integer;
function Number_Of_Links (The_Object : Object) return Integer;
function Owner_Permissions (The_Object : Object)
return Permission_Enumeration;
function Group_Permissions (The_Object : Object)
return Permission_Enumeration;
function Other_Permissions (The_Object : Object)
return Permission_Enumeration;
procedure Change_Owner_Permissions
(The_Object : Object;
The_Permissions : Permission_Enumeration);
procedure Change_Group_Permissions
(The_Object : Object;
The_Permissions : Permission_Enumeration);
procedure Change_Other_Permissions
(The_Object : Object;
The_Permissions : Permission_Enumeration);
function Image (The_Permissions : Permission_Enumeration) return String;
function Value (S : in String) return Permission_Enumeration;
end Statistics;
package Any_Object is
-- Operations to Create, Copy and Destroy Objects.
procedure Open (The_Object : in out Object; Object_Name : String);
procedure Create (The_Object : in out Object;
Object_Name : String;
Object_Class : Class_Enumeration :=
Directory.Unknown_Class;
Object_Owner_Permissions :
Directory.Statistics.Permission_Enumeration :=
Directory.Statistics.R_W_Permission;
Object_Group_Permissions :
Directory.Statistics.Permission_Enumeration :=
Directory.Statistics.R_W_Permission;
Object_Other_Permissions :
Directory.Statistics.Permission_Enumeration :=
Directory.Statistics.R_W_Permission);
procedure Copy (Source : Object;
Destination_Name : in String;
Destination : in out Object);
procedure Rename (Source : in out Object; Destination_Name : in String);
procedure Delete (The_Object : in out Object);
end Any_Object;
private
package Gs is new Our_Generic_String (Default_Maximal_Length => 256);
type Object is
record
Name : Gs.Object := Gs.Undefined_Object;
end record;
package Object_Set is new Set_Generic (Element => Object);
type Iterator is new Object_Set.Iterator;
end Directory;
nblk1=f
nid=2
hdr6=1c
[0x00] rec0=1e rec1=00 rec2=01 rec3=046
[0x01] rec0=1c rec1=00 rec2=0c rec3=048
[0x02] rec0=04 rec1=00 rec2=0e rec3=04e
[0x03] rec0=20 rec1=00 rec2=05 rec3=00a
[0x04] rec0=1c rec1=00 rec2=09 rec3=034
[0x05] rec0=1e rec1=00 rec2=0b rec3=01e
[0x06] rec0=04 rec1=00 rec2=0a rec3=02c
[0x07] rec0=1d rec1=00 rec2=0f rec3=03a
[0x08] rec0=00 rec1=00 rec2=03 rec3=00a
[0x09] rec0=15 rec1=00 rec2=04 rec3=082
[0x0a] rec0=02 rec1=00 rec2=0d rec3=010
[0x0b] rec0=1b rec1=00 rec2=07 rec3=064
[0x0c] rec0=12 rec1=00 rec2=08 rec3=02c
[0x0d] rec0=1b rec1=00 rec2=06 rec3=000
[0x0e] rec0=03 rec1=00 rec2=02 rec3=000
tail 0x2172126dc83ab4fa7f7d4 0x42a00088462062803
Free Block Chain:
0x2: 0000 00 00 00 0f 80 0c 75 74 20 4e 61 6d 69 6e 67 2e ┆ ut Naming.┆