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

⟦e79a5a563⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Limit_Operations, pragma Module_Name 4 3554, pragma Subsystem Directory, seg_001ce9

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 Directory;
with System;

package Limit_Operations is

    pragma Subsystem (Directory);
    pragma Module_Name (4, 3554);

    -- Accepts a limit (as in compilation or show usage) and builds the
    -- necessary data structures to make enquiries.

    -- There are two items of interest, limit specifiers and contexts.
    -- A limit specifier specifies how to interpret a 'context'.
    -- A context is a set of directory.objects, and is interpreted as directed
    -- by the limit string.  For example, if the limit string is
    -- <WORLDS>, all objects in the same worlds as the contexts are ok.
    -- Since there can be many contexts, many worlds can be specified.

    -- The valid limit strings are:
    --
    --      <UNITS>                         Exact match of context(s)
    --      <SUBUNITS>                      Context(s) and all subunits
    --      <DIRECTORY> <DIRECTORIES>       Library containing the context(s)
    --      <WORLDS>                        World containing the context(s)
    --      <ALL_WORLDS>                    Anything
    --      <ACTIVITY>                      Worlds in the default activity
    --                                      are used as context.  Implies
    --                                      <WORLDS>
    --      Any naming string/set.          The objects specified by the
    --                                      expression.  If an activity is
    --                                      given, it is decomposed.  The
    --                                      change limit is set to the
    --                                      'highest' object encountered
    --                                      (object, library, world)
    --
    --  Prefixes of the limit strings are accepted


    type Error_Status is
       (Successful, Unknown_Limit_Specifier, Lock_Error,
        Naming_Error,             -- If set, name_status has further info
        Other_Error);

    function Is_Bad (Status : Error_Status) return Boolean;

    procedure Initialize (Limit_String :     String;
                          Context      :     String;
                          In_Heap      :     System.Segment;
                          Change_Limit : out Directory.Change_Limit;
                          Context_Set  : out Directory.Object_Set.Set;
                          Status       : out Error_Status;
                          Name_Status  : out Directory.Naming.Name_Status);

    -- The iterator is consumed here.  As such it might have to be
    -- reset after this call

    procedure Initialize (Limit_String :        String;
                          Context      : in out Directory.Naming.Iterator;
                          In_Heap      :        System.Segment;
                          Change_Limit : out    Directory.Change_Limit;
                          Context_Set  : out    Directory.Object_Set.Set;
                          Status       : out    Error_Status;
                          Name_Status  : out    Directory.Naming.Name_Status);

    function Is_In_Limit
                (Object       : Directory.Object;
                 Change_Limit : Directory.Change_Limit;
                 Context_Set  : Directory.Object_Set.Set) return Boolean;

    procedure Initialize (Limit_String :     String;
                          Context      :     Directory.Object;
                          In_Heap      :     System.Segment;
                          Change_Limit : out Directory.Change_Limit;
                          Context_Set  : out Directory.Object_Set.Set;
                          Status       : out Error_Status;
                          Name_Status  : out Directory.Naming.Name_Status);


end Limit_Operations;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=19 rec1=00 rec2=01 rec3=038
        [0x01] rec0=13 rec1=00 rec2=02 rec3=000
        [0x02] rec0=13 rec1=00 rec2=03 rec3=04e
        [0x03] rec0=12 rec1=00 rec2=04 rec3=000
    tail 0x20100fa707da18e2a5a5d 0x42a00088462065003