DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ P T ┃
Length: 5183 (0x143f) Types: TextFile Names: »PRINT_CLOSURE«
└─⟦db1c56801⟧ Bits:30000748 8mm tape, Rational 1000, TESTMATE 2_2_0 └─ ⟦866d14df1⟧ »DATA« └─⟦97c804b2f⟧ └─⟦3a6141a61⟧ └─⟦this⟧ └─⟦db1c56801⟧ Bits:30000748 8mm tape, Rational 1000, TESTMATE 2_2_0 └─ ⟦866d14df1⟧ »DATA« └─⟦97c804b2f⟧ └─⟦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;