|
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 - download
Length: 8192 (0x2000) Types: Ada Source Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Display_Lib, seg_004534
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000 └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« └─⟦this⟧
with Log; with Common; with Errors; with Profile; with Directory; with Simple_Status; with Bounded_String; with Table_Formatter; with Directory_Tools; with String_Utilities; with Directory_Renames; use Directory_Renames; with Abstract_Document; with String_Map_Generic; with Create_Null_Document; with Sequential_Reference; procedure Display_Lib (Root : String := "<cursor>"; To_Preview_Object : String := "Library_Info"; Include_Units : Boolean := True; Include_Views : Boolean := True; Showing_Class : Boolean := True; Showing_State : Boolean := False; Showing_Sizes : Boolean := False; Showing_Locks : Boolean := False; Showing_Acls : Boolean := False) is Root_Obj : Object.Handle := Naming.Resolution (Root); Documnt : Abstract_Document.Handle; Condition : Errors.Condition; -- subtype Acl_String is Bounded_String.Variable_String (256); -- -- function Hash (Acl : Acl_String) return Integer; -- -- package Acl_Reference is new Sequential_Reference -- (Acl_String, Hash, Bounded_String.Image); package Acl_Reference is new String_Map_Generic (1000, Natural); Acl_List : Acl_Reference.Map; Next_Acl_Index : Natural := 1; package Su renames String_Utilities; type Column_Flags is array (1 .. 5) of Boolean; -- function Hash (Acl : Acl_String) return Integer is -- begin -- return String_Utilities.Hash_String (Bounded_String.Image (Acl)); -- end Hash; -- function Get_Acl_Index (Acl : String) return Natural is begin declare begin Acl_Reference.Define (Acl_List, Acl, Next_Acl_Index, True); Next_Acl_Index := Nxt_Acl_Index + 1; exception when Acl_Reference.Multiply_Defined => null; end; return Acl_Reference.Eval (Acl_List, Acl); end Get_Acl_Index; function Count_Table_Columns (Flags : Column_Flags) return Positive is Count : Positive := 1; begin for I in Flags'Range loop if Flags (I) then Count := Count + 1; end if; end loop; return Count; end Count_Table_Columns; package Table is new Table_Formatter (Count_Table_Columns ((Showing_Class, Showing_State, Showing_Sizes, Showing_Locks, Showing_Acls))); function Class_Image (Of_Object : Object.Handle) return String is separate; procedure Display (Obj : Object.Handle; Indentation : String; Document : Abstract_Document.Handle) is separate; procedure Traverse (Obj : Object.Handle; Indentation : String; Document : Abstract_Document.Handle) is separate; begin if Object.Is_Bad (Root_Obj) then Log.Put_Line ("Problem accessing root object: " & Root & Object.Message (Root_Obj), Profile.Error_Msg); else Table.Header ("Object Simple Name"); if Showing_Class then Table.Header ("Class(Subclass)"); end if; if Showing_State then Table.Header (S => "State", Format => Table.Centered); end if; if Showing_Sizes then Table.Header (S => "Size", Format => Table.Right); end if; if Showing_Locks then Table.Header ("Locks"); end if; if Showing_Acls then Table.Header ("ACL's"); Acl_Reference.Initialize (Acl_List); end if; Create_Null_Document (Named => To_Preview_Object, Error_Info => Condition, Document_Handle => Document); case Errors.Severity (Condition) is when Simple_Status.Problem | Simple_Status.Fatal => Log.Put_Line ("Problem creating object " & To_Preview_Object & ". " & Errors.Info (Condition), Profile.Error_Msg); when others => Traverse (Root_Obj, "", Document); Table.Display (Document, Su.Capitalize (Naming.Full_Name (Root_Obj))); Abstract_Document.Close (Document); Common.Definition (To_Preview_Object); end case; end if; end Display_Lib;
nblk1=7 nid=0 hdr6=e [0x00] rec0=1d rec1=00 rec2=01 rec3=012 [0x01] rec0=00 rec1=00 rec2=07 rec3=002 [0x02] rec0=1f rec1=00 rec2=02 rec3=03e [0x03] rec0=00 rec1=00 rec2=06 rec3=002 [0x04] rec0=1c rec1=00 rec2=03 rec3=054 [0x05] rec0=1a rec1=00 rec2=04 rec3=00e [0x06] rec0=17 rec1=00 rec2=05 rec3=000 tail 0x217001d0a815c64b49073 0x42a00088462061e03