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 - metrics - download
Index: T V

⟦8e83aed81⟧ TextFile

    Length: 37354 (0x91ea)
    Types: TextFile
    Names: »V«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

-- This package provides information about objects in the Environment.
-- This package consists of several sub-packages, each of which is
-- dedicated to a particular kind of object.
--
-- If "Transitive" is True, the parents or children of an object
-- will be analyzed transitively. If False, only the immediate parent
-- or children of an object will be analyzed.
--
-- The "Contains_XXX" predicates work by resolving an iterator and then
-- testing if the iterator empty or not. If you want to write some
-- code which has the following intent:
--
--   if (Contains_XXX) then
--       All_XXXs := XXXs_In
--          ...
--
-- this will be fairly inefficient, as it resolves the same iterator twice.
-- It is more efficient, in this case, to write the following code:
--
--   All_XXXs := XXXs_In
--   if (not Empty (All_XXXs)) then
--      ...
--
-- No exceptions are raised by this package. If an operation is applied
-- to an inappropriate object, the result will be either be an empty
-- set of objects, or a bad object.
--
with Activity;
with Directory;
with Directory_Tools;
package Object_Info is

    subtype Object is Directory_Tools.Object.Handle;
    subtype Objects is Directory_Tools.Object.Iterator;

    -- This package provides information applicable to any object in
    -- the Environment.
    --
    package Any is

        subtype Library is Object;
        subtype Directory is Object;
        subtype World is Object;
        subtype Simple_World is Object;
        subtype Subsystem is Object;
        subtype View is Object;
        subtype Spec_View is Object;
        subtype Load_View is Object;
        subtype Working_Load_View is Object;
        subtype Released_Load_View is Object;
        subtype Code_Only_Load_View is Object;
        subtype Combined_View is Object;
        subtype Units_Directory is Object;
        subtype Simple_Object is Object;
        subtype Ada_Unit is Object;
        subtype File is Object;
        subtype Misc_Simple_Object is Object;
        subtype Frozen_Object is Object;

        subtype Libraries is Objects;
        subtype Directories is Objects;
        subtype Worlds is Objects;
        subtype Simple_Worlds is Objects;
        subtype Subsystems is Objects;
        subtype Views is Objects;
        subtype Spec_Views is Objects;
        subtype Load_Views is Objects;
        subtype Working_Load_Views is Objects;
        subtype Released_Load_Views is Objects;
        subtype Code_Only_Load_Views is Objects;
        subtype Combined_Views is Objects;
        subtype Simple_Objects is Objects;
        subtype Ada_Units is Objects;
        subtype Files is Objects;
        subtype Misc_Simple_Objects is Objects;
        subtype Frozen_Objects is Objects;

        function Is_Empty (These_Objects : in Objects) return Boolean;
        --
        -- Returns True if the specified set of objects contains no
        -- objects, or is Bad.

        function Number_In (These_Objects : in Objects) return Natural;
        --
        -- Returns the number of objects contained in the set of objects.
        -- Returns 0 if the set is Bad.

        function Classes_Equal
                    (This_Object : in Object;
                     This_Class : in Directory_Tools.Object.Class_Enumeration)
                    return Boolean;
        --
        -- Returns True iff the major class of the specified object is
        -- equal to the specified class.

        function Subclasses_Equal
                    (This_Object : in Object;
                     This_Subclass : in Standard.Directory.Subclass)
                    return Boolean;
        --
        -- Returns True iff the subclass of the specified object is
        -- equal to the specified subclass.

        function Is_Good (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is Good.

        function Is_Bad (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is Bad.

        function Is_Library (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a directory, simple
        -- world, subsystem, or view.

        function Is_Directory (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a directory.

        function Is_World (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a simple world,
        -- subsystem, or view.

        function Is_Simple_World (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a simple world.

        function Is_Model_World (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a simple world
        -- located in "!MODEL".

        function Is_Root (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is named "!".

        function Is_Subsystem (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a subsystem.

        function Is_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a spec view,
        -- working load view, released load view, code only load
        -- view, or combined view.

        function Is_Spec_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a spec view.

        function Is_Load_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a load view.

        function Is_Working_Load_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a working load view.

        function Is_Released_Load_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a released load view.

        function Is_Code_Only_Load_View
                    (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a code only load view.

        function Is_Combined_View (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a combined view.

        function Is_Units_Directory_Of_View
                    (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is the units directory
        -- of a view.

        function Is_Simple_Object (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is not a library of
        -- some kind.

        function Is_Ada_Unit (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is an Ada unit.

        function Is_File (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a file.

        function Is_Misc_Simple_Object (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is a simple object
        -- which is not an Ada unit and is not a file.

        function Is_Frozen (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is frozen.

        function Contains_Libraries
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- library.

        function Contains_Directories
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- directory.

        function Contains_Worlds
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- world (simple or otherwise).

        function Contains_Simple_Worlds
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- simple world.

        function Contains_Subsystems
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- subsystem.

        function Contains_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- view (of any kind).

        function Contains_Spec_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- spec view.

        function Contains_Load_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- load view (of any kind).

        function Contains_Working_Load_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- working load view.

        function Contains_Released_Load_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- released load view.

        function Contains_Code_Only_Load_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- code only load view.

        function Contains_Combined_Views
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- combined view.

        function Contains_Simple_Objects
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- object which is not a world of some kind.

        function Contains_Ada_Units
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- Ada unit.

        function Contains_Files
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- file.

        function Contains_Misc_Simple_Objects
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- object which is not a world of some kind, not an Ada unit,
        -- and not a file.

        function Contains_Frozen_Objects
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains at least one
        -- object which is frozen.

        function Is_Contained_By_Directory
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- directory.

        function Is_Contained_By_World
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- world of some kind.

        function Is_Contained_By_Simple_World
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- simple world.

        function Is_Contained_By_Subsystem
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- subsystem.

        function Is_Contained_By_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- view of some kind.

        function Is_Contained_By_Spec_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- spec view.

        function Is_Contained_By_Load_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- load view of some kind.

        function Is_Contained_By_Working_Load_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- working load view.

        function Is_Contained_By_Released_Load_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- released load view.

        function Is_Contained_By_Code_Only_Load_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- code only load view.

        function Is_Contained_By_Combined_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by a
        -- combined view.

        function Is_Contained_By_Units_Directory_Of_View
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object is contained by the
        -- units directory of some kind of view.

        function Directory_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Directory;
        --
        -- Returns the first directory found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function World_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return World;
        --
        -- Returns the first world of any kind found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Simple_World_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Simple_World;
        --
        -- Returns the first simple world found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Subsystem_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Subsystem;
        --
        -- Returns the first subsystem found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return View;
        --
        -- Returns the first view of any kind found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Spec_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Spec_View;
        --
        -- Returns the first spec view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Load_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Load_View;
        --
        -- Returns the first load view of any kind found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Working_Load_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Working_Load_View;
        --
        -- Returns the first working load view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Released_Load_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Released_Load_View;
        --
        -- Returns the first released load view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Code_Only_Load_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Code_Only_Load_View;
        --
        -- Returns the first code only load view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Combined_View_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Combined_View;
        --
        -- Returns the first combined view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function Units_Directory_Containing
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Units_Directory;
        --
        -- Returns the first units directory of a view found which contains the
        -- specified object. Returns a Bad object if no container
        -- of the specified kind exists.

        function All_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Objects;
        --
        -- Returns all objects of any kind contained by the specified object.

        function Libraries_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Libraries;
        --
        -- Returns all libraries of any kind contained by the specified object.

        function Directories_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Directories;
        --
        -- Returns all directories contained by the specified object.

        function Worlds_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Worlds;
        --
        -- Returns all worlds of any kind contained by the specified object.

        function Simple_Worlds_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Simple_Worlds;
        --
        -- Returns all simple worlds contained by the specified object.

        function Subsystems_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Subsystems;
        --
        -- Returns all subsystems contained by the specified object.

        function Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Views;
        --
        -- Returns all views of any kind contained by the specified object.

        function Spec_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Spec_Views;
        --
        -- Returns all spec views contained by the specified object.

        function Load_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Load_Views;
        --
        -- Returns all load views of any kind contained by the specified object.

        function Working_Load_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Working_Load_Views;
        --
        -- Returns all working load views contained by the specified object.

        function Released_Load_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Released_Load_Views;
        --
        -- Returns all released load views contained by the specified object.

        function Code_Only_Load_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Code_Only_Load_Views;
        --
        -- Returns all code only load views contained by the specified object.

        function Combined_Views_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Combined_Views;
        --
        -- Returns all combined views contained by the specified object.

        function Simple_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Simple_Objects;
        --
        -- Returns all simple objects of any kind contained by the specified
        -- object.

        function Ada_Units_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Ada_Units;
        --
        -- Returns all Ada units contained by the specified object.

        function Files_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Files;
        --
        -- Returns all files contained by the specified object.

        function Misc_Simple_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Misc_Simple_Objects;
        --
        -- Returns all non-Ada non-file simple objects contained by the
        -- specified object.

        function Frozen_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Frozen_Objects;
        --
        -- Returns all frozen objects contained by the specified object.

    end Any;

    -- This package provides information about objects under CMVC.
    --
    package Cmvc is

        subtype Subsystem is Object_Info.Any.Subsystem;

        subtype View is Object_Info.Any.View;
        subtype Views is Object_Info.Any.Views;
        subtype Spec_View is Object_Info.Any.Spec_View;
        subtype Spec_Views is Object_Info.Any.Spec_Views;
        subtype Load_View is Object_Info.Any.Load_View;
        subtype Load_Views is Object_Info.Any.Load_Views;

        subtype Referencer is View;
        subtype Referencers is Views;
        subtype Import is Spec_View;
        subtype Imports is Spec_Views;

        subtype Checked_Out_Objects is Objects;
        subtype Controlled_Objects is Objects;

        subtype Model_World is Object_Info.Any.Simple_World;

        function Model_For (This_View : in View) return Model_World;
        --
        -- Returns the model world for the specified view.

        function Models_Equal (This_View : in View; This_Model : in Model_World)
                              return Boolean;
        --
        -- Returns True iff the specified view has the specified model.

        function Is_Primary (This_Subsystem : in Subsystem) return Boolean;
        --
        -- Returns True iff the specified subsystem is primary.

        function Is_Secondary (This_Subsystem : in Subsystem) return Boolean;
        --
        -- Returns True iff the specified subsystem is secondary.

        function Is_Controlled (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is controlled.

        function Is_Checked_Out (This_Object : in Object) return Boolean;
        --
        -- Returns True iff the specified object is checked-out.

        function Contains_Controlled_Objects
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains controlled objects.

        function Contains_Checked_Out_Objects
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Boolean;
        --
        -- Returns True iff the specified object contains checked-out objects.

        function Controlled_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Controlled_Objects;
        --
        -- Returns all controlled objects of any kind contained by the
        -- specified object.

        function Checked_Out_Objects_In
                    (This_Object : in Object; Transitive : in Boolean := True)
                    return Checked_Out_Objects;
        --
        -- Returns all checked-out objects of any kind contained by the
        -- specified object.

        function Current_Spec_View_In
                    (This_Subsystem : in Subsystem;
                     This_Activity : in Activity.Activity_Name :=
                        Activity.The_Current_Activity) return Spec_View;
        --
        -- Returns the current spec view corresponding to the specified
        -- subsystem in the specified activity. Returns a Bad object
        -- if there is no such spec view.

        function Current_Load_View_In
                    (This_Subsystem : in Subsystem;
                     This_Activity : in Activity.Activity_Name :=
                        Activity.The_Current_Activity) return Load_View;
        --
        -- Returns the current load view corresponding to the specified
        -- subsystem in the specified activity. Returns a Bad object
        -- if there is no such load view.

        function Imports_For
                    (This_View : in View; Used_Only : in Boolean := True)
                    return Imports;
        --
        -- Returns the imports (which are always spec views) for the
        -- specified view.
        --
        -- If "Used_Only" is True, only returns those imports which
        -- contain Ada units which are depended upon by at least one Ada
        -- unit within the specified view.

        function Is_Used
                    (This_Import : in Import; By_View : in View) return Boolean;
        --
        -- Returns True iff the specified import contains an Ada unit
        -- which is depended upon by at least one Ada unit within the
        -- specified view.

        function Referencers_Of
                    (This_Spec_View : in Spec_View;
                     Using_Only : in Boolean := True) return Referencers;
        --
        -- Returns the referencers (which are always views of some kind)
        -- of the specified spec view.
        --
        -- If "Using_Only" is True, only returns those referencers which
        -- contain Ada units which depend upon at least one Ada unit within
        -- the specified view.

        function Is_User (This_Referencer : in Referencer;
                          Of_Spec_View : in Spec_View) return Boolean;
        --
        -- Returns True iff the specified referencer contains an Ada unit
        -- which depends upon at least one Ada unit within the specified
        -- view.

    end Cmvc;

    -- This package provides information specific to links.
    --
    package Links is

        subtype World is Object_Info.Any.World;
        subtype View is Object_Info.Any.View;

        subtype Link is Object_Info.Any.Ada_Unit;
        subtype Links is Object_Info.Any.Ada_Units;

        subtype Internal_Links is Links;
        subtype External_Links is Links;
        subtype Imported_External_Links is External_Links;
        subtype Non_Imported_External_Links is External_Links;

        subtype Import is Object_Info.Cmvc.Import;

        subtype Ada_Unit is Object_Info.Any.Ada_Unit;
        subtype Ada_Units is Object_Info.Any.Ada_Units;

        function Links_For (This_World : in World; Used_Only : in Boolean)
                           return Links;
        --
        -- Returns all links (which are always Ada units) for the specified
        -- world.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified world.

        function Internal_Links_For
                    (This_World : in World; Used_Only : in Boolean)
                    return Internal_Links;
        --
        -- Returns all internal links for the specified world.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified world.

        function External_Links_For
                    (This_World : in World; Used_Only : in Boolean)
                    return External_Links;
        --
        -- Returns all external links for the specified world.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified world.

        function Imported_External_Links_For
                    (This_View : in View; Used_Only : in Boolean)
                    return Imported_External_Links;
        --
        -- Returns all external links which were added to the link
        -- pack for the specified view via a "CMVC.Import" command.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified view.

        function Non_Imported_External_Links_For
                    (This_View : in View; Used_Only : in Boolean)
                    return Non_Imported_External_Links;
        --
        -- Returns all external links which were added to the link
        -- pack for the specified view via a "Links.Add" command.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified view.

        function Is_Used
                    (This_Link : in Link; In_World : in World) return Boolean;
        --
        -- Returns True iff the specified link is depended upon by at
        -- least one Ada unit in the specified world.

        function Dependencies_On
                    (This_Link : in Link; In_World : in World) return Ada_Units;
        --
        -- Returns the Ada units in the specified world which are installed
        -- and/or coded and which depend on the specified link via a context
        -- clause.

        function Links_Derived_From
                    (This_Import : in Import;
                     Into_View : in View;
                     Used_Only : in Boolean) return Imported_External_Links;
        --
        -- Returns all external links in the link pack of the specified
        -- view which are to Ada units contained in the specified import.
        --
        -- If "Used_Only" is True, only returns those links which are
        -- depended upon by at least one Ada unit in the specified view.

    end Links;

    -- This package provides information specific to Ada objects.
    --
    package Ada is

        subtype Ada_Unit is Object_Info.Any.Ada_Unit;  
        subtype Ada_Spec is Ada_Unit;
        subtype Ada_Body is Ada_Unit;

        subtype Ada_Units is Object_Info.Any.Ada_Units;
        subtype Ada_Specs is Ada_Units;  
        subtype Subunits is Ada_Units;

        function Is_Installed (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is installed but
        -- not coded.

        function Is_Coded (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is coded.

        function Is_Installed_Or_Coded (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is installed or coded.

        function Is_Body (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a body.

        function Is_Subunit (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a subunit.

        function Is_Body_Or_Subunit (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a body or a subunit.

        function Is_Spec (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a spec.

        function Is_Universe_Mirror (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is an Environment spec
        -- (i.e. has no visible body anywhere in the Environment).

        function Is_Generic_Spec (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a generic spec.

        function Is_Spec_In_Spec_View (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a spec contained in
        -- the units directory of a spec view.

        function Is_Spec_In_Load_View (This_Unit : in Ada_Unit) return Boolean;
        --
        -- Returns True iff the specified Ada unit is a spec contained in
        -- the units directory of a load view.

        function Spec_In_Other_View
                    (This_Spec : in Ada_Spec;
                     This_Activity : in Activity.Activity_Name :=
                        Activity.The_Current_Activity) return Ada_Spec;
        --
        -- Given a spec in a spec view, returns the corresponding spec in
        -- the load view in the specified activity (unless the corresponding
        -- load view is a code view, in which case a nil object is returned).
        --
        -- Given a spec in a load view, returns the corresponding spec in
        -- the spec view in the specified activity.
        --
        -- Given a spec in a combined view, returns the spec itself.

        function Specs_Withed_By (This_Unit : in Ada_Unit) return Ada_Specs;
        --
        -- Returns the specs in the context clause for the specified unit.

        function Dependents_Of (This_Unit : in Ada_Unit) return Ada_Units;
        --
        -- Given a spec, returns the body associated with the spec.
        --
        -- Given a body, returns the subunits of the body.
        --
        -- Given a subunit, returns the subunits of the subunit.

        function Parent_Of (This_Unit : in Ada_Unit) return Ada_Unit;
        --
        -- Given a subunit, returns the unit it is declared "separate" from.
        --
        -- Given a body, returns the spec associated with it.
        --
        -- Given a spec, returns a Bad object.

        function Subunits_Of (This_Unit : in Ada_Unit) return Subunits;
        --
        -- Returns the subunits of the specified unit.

        function Body_For (This_Unit : in Ada_Unit) return Ada_Body;
        --
        -- Given a spec, returns the body associated with the spec.
        --
        -- Given a subunit, traverses all parents of the subunit until
        -- gets to the body, and returns the body.
        --
        -- Given a body, returns the body itself.

        function Spec_For (This_Unit : in Ada_Unit) return Ada_Spec;
        --
        -- Given a body, returns the spec associated with the body.
        --
        -- Given a subunit, traverses all parents of the subunit until
        -- gets to the body, then returns the spec associated with the
        -- body.
        --
        -- Given a spec, returns the spec itself.

    end Ada;

end Object_Info;