|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 9216 (0x2400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package Version_Information, seg_028b95
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦5a81ac88f⟧ »Space Info Vol 1«
└─⟦this⟧
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;
nblk1=8
nid=0
hdr6=10
[0x00] rec0=1b rec1=00 rec2=01 rec3=06a
[0x01] rec0=10 rec1=00 rec2=02 rec3=080
[0x02] rec0=12 rec1=00 rec2=03 rec3=0a0
[0x03] rec0=17 rec1=00 rec2=04 rec3=038
[0x04] rec0=14 rec1=00 rec2=05 rec3=004
[0x05] rec0=17 rec1=00 rec2=06 rec3=040
[0x06] rec0=1e rec1=00 rec2=07 rec3=036
[0x07] rec0=14 rec1=00 rec2=08 rec3=001
tail 0x2152134a283c55e3b97d7 0x42a00044462022803