|
|
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: 5182 (0x143e)
Types: TextFile
Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦858175e83⟧
└─⟦this⟧
with Io;
with System;
with Job_Segment;
with Po_Access_Modes;
with Po_Conditions;
with Po_Handle;
with Full_Unit_Path_List;
with View_Pair;
with Unit_Data_Pair;
with Unit_Path_Data_List;
with Version_Information;
procedure Print_Closure (Of_Test_Run : in String) is
-- Print_Closure shows a simple use of the subject program version closure object
-- associated with every test run.
package Vi renames Version_Information;
Heap : System.Segment := Job_Segment.Get;
O : Vi.Object;
Path : Po_Handle.Object;
Cond : Po_Conditions.Condition;
procedure Print_Unit_Data_List (L : Unit_Path_Data_List.Object) is
Iter : Unit_Path_Data_List.Iterator;
begin
Unit_Path_Data_List.Init (Iter, L);
while not Unit_Path_Data_List.Done (Iter) loop
Io.Put_Line (" " & Unit_Data_Pair.Convert
(Unit_Path_Data_List.Value (Iter)));
Unit_Path_Data_List.Next (Iter);
end loop;
end Print_Unit_Data_List;
procedure Print_Unit_List (L : Full_Unit_Path_List.Object) is
Iter : Full_Unit_Path_List.Iterator;
begin
Full_Unit_Path_List.Init (Iter, L);
while not Full_Unit_Path_List.Done (Iter) loop
Io.Put_Line (" " & Po_Handle.Name
(Full_Unit_Path_List.Value (Iter)));
Full_Unit_Path_List.Next (Iter);
end loop;
end Print_Unit_List;
procedure Do_Subj_Prog (Object : Vi.Object) is
Iter : Vi.Iterator;
Pname : Po_Handle.Object;
List : Full_Unit_Path_List.Object;
begin
Iter := Vi.Init (Vi.Subject_Program_Closure, Object);
if not Vi.Done (Iter) then
Io.Put_Line ("SUBJECT PROGRAM CLOSURE UNITS =>");
end if;
while not Vi.Done (Iter) loop
Pname := Vi.Value (Iter);
Io.Put_Line (" Subject Program: " & Po_Handle.Name (Pname));
List := Vi.Eval (Vi.Subject_Program_Closure, Object, Pname);
Print_Unit_List (List);
Io.New_Line;
Vi.Next (Iter);
end loop;
end Do_Subj_Prog;
procedure Do_Other_Free (Object : Vi.Object) is
Iter : Vi.Iterator;
begin
Iter := Vi.Init (Vi.Other_Free_Units, Object);
if not Vi.Done (Iter) then
Io.Put_Line ("FREE UNITS =>");
end if;
while not Vi.Done (Iter) loop
Io.Put_Line (" " & Unit_Data_Pair.Convert (Vi.Value (Iter)));
Vi.Next (Iter);
end loop;
end Do_Other_Free;
procedure Do_Subsystem_Free (Object : Vi.Object) is
Vpair : View_Pair.Object;
Iter : Vi.Iterator;
List : Unit_Path_Data_List.Object;
begin
Iter := Vi.Init (Vi.Free_Units_In_Subsystem, Object);
if not Vi.Done (Iter) then
Io.Put_Line ("UNITS WITHIN SUBSYSTEMS NOT UNDER CMVC =>");
end if;
while not Vi.Done (Iter) loop
Vpair := Vi.Value (Iter);
Io.Put_Line (" Subsystem: " & View_Pair.Image (Vpair));
List := Vi.Eval (Vi.Free_Units_In_Subsystem, Object, Vpair);
Print_Unit_Data_List (List);
Io.New_Line;
Vi.Next (Iter);
end loop;
end Do_Subsystem_Free;
procedure Do_Cmvc (Object : Vi.Object) is
Vpair : View_Pair.Object;
Iter : Vi.Iterator;
List : Unit_Path_Data_List.Object;
begin
Iter := Vi.Init (Vi.Cmvc_Units, Object);
if not Vi.Done (Iter) then
Io.Put_Line ("CMVC CONTROLLED UNITS =>");
end if;
while not Vi.Done (Iter) loop
Vpair := Vi.Value (Iter);
Io.Put_Line (" Subsystem: " & View_Pair.Image (Vpair));
List := Vi.Eval (Vi.Cmvc_Units, Object, Vpair);
Print_Unit_Data_List (List);
Io.New_Line;
Vi.Next (Iter);
end loop;
end Do_Cmvc;
procedure Do_Froze (Object : Vi.Object) is
Iter : Vi.Iterator;
List : Full_Unit_Path_List.Object;
Vpair : View_Pair.Object;
begin
Iter := Vi.Init (Vi.Cmvc_Frozen_Units, Object);
if not Vi.Done (Iter) then
Io.Put_Line ("FROZEN CMVC UNITS =>");
end if;
while not Vi.Done (Iter) loop
Vpair := Vi.Value (Iter);
Io.Put_Line (" Subsystem: " & View_Pair.Image (Vpair));
List := Vi.Eval (Vi.Cmvc_Frozen_Units, Object, Vpair);
Print_Unit_List (List);
Io.New_Line;
Vi.Next (Iter);
end loop;
end Do_Froze;
begin
O := Vi.Constructor (Heap);
Path := Po_Handle.Constructor (Of_Test_Run & ".closure", Heap);
Vi.Persistent_Operations.Open (O, Po_Access_Modes.Read_Only, Path);
Vi.Persistent_Operations.Get_Condition (O, Cond);
Po_Conditions.Check_Condition (Cond, Path);
Io.New_Line;
Io.Put_Line ("Subject Program Closure information for the Test Run: " &
Po_Handle.Name (Path));
Io.New_Line;
Do_Froze (O);
Do_Cmvc (O);
Do_Subsystem_Free (O);
Do_Other_Free (O);
Do_Subj_Prog (O);
end Print_Closure;