DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

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

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦d724b5db5⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Link_Tools, pragma Module_Name 4 3975, pragma Subsystem Tools, seg_028507

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦5a81ac88f⟧ »Space Info Vol 1« 
        └─⟦this⟧ 

E3 Source Code



with Diana;
with Directory;
with Links_Implementation;
with Io_Exceptions;

package Link_Tools is

    pragma Subsystem (Tools, Private_Part => Closed);
    pragma Module_Name (4, 3975);

    package Links renames Links_Implementation;

    subtype World_Name is String;
    This_World : constant World_Name := "$";

    -- The string name for the World associated with the current naming
    -- context.

    subtype Link_Name is String;

    -- An Ada simple name. When used as an in-parameter, except in Add and
    -- Replace, it may contain wildcard characters.  In Add and Replace it
    -- may contain substitution characters.

    subtype Source_Name is String;

    -- A directory string name that specifies an existing Ada Library Unit.
    -- (The unit does not have to be installed, but its declaration must be
    -- in a library.)  May contain wildcard characters when used as an
    -- in-parameter.

    subtype Link_Kind is Links.Link_Kind;

    -- If the source unit is in the same world as the link,
    -- the link is Internal; otherwise it is External.


    Any      : constant Link_Kind := Links.Any;
    External : constant Link_Kind := Links.External;
    Internal : constant Link_Kind := Links.Internal;

    function "=" (L, R : Link_Kind) return Boolean renames Links."=";


    Name_Error : exception renames Io_Exceptions.Name_Error;
    -- Raised if a World parameter cannot be resolved.

    Use_Error : exception renames Io_Exceptions.Use_Error;
    -- Raised of the link pack cannot be opened for other reasons.


    function Has (Link   : Link_Name   := "@";
                  Source : Source_Name := "?";
                  Kind   : Link_Kind   := Link_Tools.Any;
                  World  : World_Name  := This_World) return Boolean;

    -- Returns true iff the pack contains at least one link that matches the
    -- given link, source, and kind parameters.


    function Link (Source : Source_Name;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;

    function Link (Source : Diana.Tree;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;

    function Link (Source : Directory.Object;
                   Kind   : Link_Kind  := Link_Tools.Any;
                   World  : World_Name := This_World) return Link_Name;


    -- Given a Source_Name, Def_ID, or Directory.Object for an Ada unit,
    -- returns a link for that unit in the given world that matches the
    -- Kind parameter.  A null string is returned if no such link can be
    -- found.


    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Source_Name;

    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Diana.Tree;

    function Source (Link  : Link_Name;
                     Kind  : Link_Kind  := Link_Tools.Any;
                     World : World_Name := This_World) return Directory.Object;


    -- Returns either the Source_Name, Def_ID, or Directory.Object for an Ada
    -- unit corresponding to a link that matches the Link and Kind parameter.
    -- Returns a null object if no match can be found.


    type Dependent_Iterator is private;

    function Dependents (Link   : Link_Name   := "@";
                         Source : Source_Name := "?";
                         Kind   : Link_Kind   := Link_Tools.Any;
                         World  : World_Name  := This_World)
                        return Dependent_Iterator;

    procedure Next  (Iter : in out Dependent_Iterator);
    function  Value (Iter : Dependent_Iterator) return Diana.Tree;
    functin  Done  (Iter : Dependent_Iterator) return Boolean;


    -- Computes the Library Units of the world that are installed or coded
    -- and reference any of the links specified by the Source, Link and Kind
    -- parameters.

    type Link_Iterator is private;

    procedure Init (Iter   : out Link_Iterator;
                    Source :     Source_Name := "?";
                    Link   :     Link_Name   := "@";
                    Kind   :     Link_Kind   := Link_Tools.Any;
                    World  :     World_Name  := This_World);

    procedure Next   (Iter : in out Link_Iterator);
    function  Link   (Iter : Link_Iterator) return Link_Name;
    function  Source (Iter : Link_Iterator) return Source_Name;
    function  Source (Iter : Link_Iterator) return Diana.Tree;
    function  Source (Iter : Link_Iterator) return Directory.Object;
    function  Kind   (Iter : Link_Iterator) return Link_Kind;
    function  Done   (Iter : Link_Iterator) return Boolean;

    -- For iterating over the Links in a link pack that match given Source
    -- and Link patterns

end Link_Tools;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=21 rec1=00 rec2=01 rec3=048
        [0x01] rec0=1d rec1=00 rec2=02 rec3=01a
        [0x02] rec0=00 rec1=00 rec2=08 rec3=00a
        [0x03] rec0=18 rec1=00 rec2=03 rec3=022
        [0x04] rec0=17 rec1=00 rec2=04 rec3=014
        [0x05] rec0=00 rec1=00 rec2=06 rec3=002
        [0x06] rec0=15 rec1=00 rec2=07 rec3=076
        [0x07] rec0=06 rec1=00 rec2=05 rec3=000
    tail 0x21520fd5c83c174c4be18 0x42a00088462065003