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

⟦95a88eaee⟧ TextFile

    Length: 7287 (0x1c77)
    Types: TextFile
    Names: »V«

Derivation

└─⟦db1c56801⟧ Bits:30000748 8mm tape, Rational 1000, TESTMATE 2_2_0
    └─ ⟦866d14df1⟧ »DATA« 
        └─⟦97c804b2f⟧ 
            └─⟦this⟧ 

TextFile

with View_Pair;
with Unit_Data_Pair;
with Full_Unit_Path_List;
with Unit_Path_Data_List;
with Po_Handle;
with Po_Conditions;
with Po_Access_Modes;
with System;

package Version_Information is

  -- This package provides an interface to the subject program closure
  -- information associated with a test run. Use these operations to obtain the
  -- Ada unit closure, and version information for each Ada unit in the closure,
  -- for each subject program in a test run.

  type Closure_Objects is (Cmvc_Frozen_Units, Cmvc_Units,
                           Free_Units_In_Subsystem, Other_Free_Units,
                           Subject_Program_Closure);

  -- The closure data is divided into five types, classified using the enumerated
  -- type Closure_Objects.

  -- Subject_Program_Closure: A map of subject program to their Ada unit closure
  --     sets, one entry for each subject program in the test run.
  -- Cmvc_Frozen_Units: A map of subsystems to Ada units; each unit found to be
  --     under CMVC control, and frozen, is placed in this map in the range of
  --     its enclosing subsystem.
  -- Cmvc_Units: A map of subsystems to Ada units; each unit under CMVC control
  --     is in this map, inserted in the range of its enclosing subsystem.
  -- Free_Units_In_Subsystem: A map of subsystems to Ada units; each unit found
  --     in a subsystem, but not under CMVC control is found in the range of
  --     its enclosing subsystem.
  -- Other_Free_Units: A list of Ada units; each Ada unit not in a subsystem is
  --     entered in this list.


  -- A subsystem is described by a View_Pair.Object, which will contain one, and
  -- possibly two full paths to a subsystem, corresponding to the load view and
  -- spec view (if any) that were resolved as part of the subject program closure
  -- computation performed prior to coverage analysis during the test run. The
  -- package View_Pair has operations for extracting the subsystem information
  -- from View_Pair.Objects


  -- The Ada unit lists take three forms, based on the information stored for a
  -- unit.

  -- Cmvc_Frozen units are maintained as a simple list of unit paths. The name of
  -- the frozen enclosing subsystem, coupled with the path to the unit specifies
  -- the unit completely. These unit paths are represented by Po_Handle.Object
  -- instances. The list is of type Full_Unit_Path_List.Object, and appropriate
  -- traversal operations reside in that package.

  -- Units in the Cmvc_Units and Free_Units_in_Subsystems are stored as
  -- Unit_Data_Pair objects, using paths relative to the enclosing subsystem.
  -- Information for each unit under CMVC control includes the time stamp and
  -- version number of checked out units, similarly for units within subsystems
  -- not under CMVC control. CMVC controlled units that are checked in are stored
  -- with the latest generation number appended to the name. The information for
  -- each unit can be obtained using the operations in the package
  -- Unit_Data_Pair. List of these units are of type Unit_Data_Pair_List.Object,
  -- and traversal operations for these list reside in the Unit_Data_Pair_List
  -- package.

  -- Units not in subsystems (Other_Free_Units) are also represented using
  -- Unit_Data_Pair objects, with the full path of the unit and a time stamp
  -- always recorded. Traversal of this list is done using the iterator defined
  -- in this package.

  -- Subject_Program_Closure unit lists contain the full path of each unit in the
  -- subject program's closure. More specific information for the unit; time
  -- stamp, version number, generation number and enclosing subsystem must be
  -- acquired using the three maps and one list described above.

  type Object is private;

  function Constructor (Heap : System.Segment) return Object;

  procedure Destructor (Of_The_Obj : in out Object);


  procedure Find (Within             :        Closure_Objects;
                  Of_Obj             :        Object;
                  The_Domain         :        View_Pair.Object;
                  Yielding_The_Range : in out Unit_Path_Data_List.Object;
                  With_Success       : out    Boolean);
  -- Given a subsystem described by the View_Pair object, Find will look up the
  -- list of Ada units within the subsystem. This version is for Cmvc_Units and
  -- Free_Units_In_Subsystem maps.

  procedure Find (Within             :        Closure_Objects;
                  Of_Obj             :        Object;
                  The_Domain         :        View_Pair.Object;
                  Yielding_The_Range : in out Full_Unit_Path_List.Object;
                  With_Success       : out    Boolean);
  -- Given a subsystem described by the View_Pair object, Find will look up the
  -- list of Ada units within the subsystem. This version is used for maps of
  -- Cmvc_Frozen_Units.



  function Eval (Within      : Closure_Objects;
                 Of_Obj      : Object;
                 With_Domain : View_Pair.Object)
                return Unit_Path_Data_List.Object;
  -- Given a subsystem described by the View_Pair object, Eval will return the
  -- list of Ada units within the subsystem. This version is for Cmvc_Units and
  -- Free_Units_In_Subsystem maps.



  function Eval (Within      : Closure_Objects;
                 Of_Obj      : Object;
                 With_Domain : View_Pair.Object)
                return Full_Unit_Path_List.Object;
  -- Given a subsystem described by the View_Pair object, Eval will return the
  -- list of Ada units within the subsystem. This version is used for maps of
  -- Cmvc_Frozen_Units.


  function Eval (Within      : Closure_Objects;
                 Of_Obj      : Object;
                 With_Domain : Po_Handle.Object)
                return Full_Unit_Path_List.Object;
  -- Given a Subject Program described by the Po_Handle object, Eval will return
  -- the list of Ada units in the closure of the subject program. For
  -- Subject_Program_Closure maps only.




  type Iterator is private;
  -- An iterator initialized to iterate over any of the five closure types can
  -- be used to systematically extract and access the unit version information
  -- of each type.


  function Init (Within : Closure_Objects; Of_Obj : Object) return Iterator;

  procedure Next (Iter : in out Iterator);
  -- One init, next for all five components of the object

  function Value (Iter : Iterator) return View_Pair.Object;
  -- domain of the subsystem free units map, and cmvc maps (frozen/unfrozen)

  function Value (Iter : Iterator) return Po_Handle.Object;
  -- domain of the subject program map

  function Value (Iter : Iterator) return Unit_Data_Pair.Object;
  -- the free unit list

  function Done (Iter : Iterator) return Boolean;


  package Persistent_Operations is


    procedure Get_Condition (Obj  : in     Object;
                             Into : in out Po_Conditions.Condition);


    procedure Open (The_Obj : in out Object;
                    Mode    : in     Po_Access_Modes.Modes;
                    Handle  : in     Po_Handle.Object);


    function Name (For_Obj : Object) return String;

    procedure Close (The_Obj : in out Object; Abandon : Boolean := False);

  end Persistent_Operations;

end Version_Information;