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

⟦4bbe680c5⟧ TextFile

    Length: 7465 (0x1d29)
    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 Calendar;
package Directory is


    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 Hash (The_Object : Object) return Integer;

    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;

    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 Subclass is limited private;

    function Nil return Subclass;
    function Is_Nil        (The_Subclass : Subclass) return Boolean;
    function Unique        (The_Subclass : Subclass) return Integer;
    function Subclass_Of   (The_Object : Object) return Subclass;
    function Image         (The_Subclass : Subclass) return String;
    function Value         (S : String) return Subclass;
    function Class_Of      (The_Subclass : Subclass) return Class_Enumeration;
    function Same_Subclass (Left, Right : Subclass) return Boolean;


    type Iterator is limited private;

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

    procedure Reset (Iter : Iterator);


    package Naming is

        -- Provides mechanisms for manipulating and resolving names and for
        -- establishing a context for name resolution.

        type Status is (Ok, Ill_Formed_Name);

        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;
                                       Status      : out Naming.Status);
        procedure Set_Default_Context
                     (The_Context : Naming.Context; Status : out Naming.Status);

        -- 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 Is_Well_Formed (A_Name : String_Name) return Boolean;

        -- Tests whether a name is lexically and syntactically valid.

        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 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.  The returned string starts with '.'.

        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 Resolution
                    (Name    : Naming.String_Name;
                     Context : Naming.Context := Default_Context) return Object;

        -- Resolve name to a single Object.  Wild cards may be used, but
        -- the name must resolve to a unique Object.

        function Resolution (Name    : Naming.String_Name;
                             Context : Naming.Context := Default_Context)
                            return Iterator;

        -- Resolves (ambiguous) Source name in the given context.

    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 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 Any_Object is

        type Status is (Ok, Already_Existent_Object, Non_Existent_Object);


        -- Operations to Create, Copy and Destroy Objects.

        procedure Create (The_Object  : out Object;
                          Object_Name :     String;
                          Status      : out Any_Object.Status);

        procedure Copy (Source      :        Object;  
                        Destination : in out Object;
                        Status      : out    Any_Object.Status);

        procedure Delete (The_Object : Object; Status : out Any_Object.Status);


    end Any_Object;

    package Statistics is

        subtype User is String;

        function Time_Of_Last_Update (The_Object : Object) return Calendar.Time;

        function Time_Of_Last_Read (The_Object : Object) return Calendar.Time;

        function Time_Of_Creation (The_Object : Object) return Calendar.Time;

        function Last_Updater (The_Object : Object) return User;

        function Last_Reader (The_Object : Object) return User;

        function Creator (The_Object : Object) return User;

        function Object_Size (The_Object : Object) return Integer;

        function Last_Edit_Time (The_Unit : Object) return Calendar.Time;

    end Statistics;

private

    type Object_Data;
    type Object is access Object_Data;

    type Subclass_Data;
    type Subclass is access Subclass_Data;

    type Iterator_Implementation;
    type Iterator is access Iterator_Implementation;

end Directory;