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: ┃ B T ┃
Length: 3932 (0xf5c) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
with Object_Editor; with String_Map_Generic; with Set_Generic; with String_Utilities; package body Pool is Small_Prime : constant Natural := 10007; Medium_Prime : constant Natural := 50021; Large_Prime : constant Natural := 100003; function Full_Name (Object : Directory.Object) return String renames Directory.Naming.Full_Name; package Reader is new Set_Generic (Element => Object_Editor.Instance); type Object is record Handle : Directory.Object; Readers : Reader.Set; Updater : Object_Editor.Instance; end record; type Object_Ptr is access Object; package String_Map is new String_Map_Generic (Size => Small_Prime, Range_Type => Object_Ptr, Ignore_Case => False); Map : String_Map.Map; function Nil (Object : Directory.Object) return Pool.Object_Ptr is Ptr : Object_Ptr; begin Ptr := new Pool.Object; Ptr.Handle := Object; Reader.Initialize (S => Ptr.Readers); Ptr.Updater := Object_Editor.Nil; return Ptr; end Nil; task Manager is entry Control (Object : Directory.Object; Status : out Pool.Status); entry Uncontrol (Object : Directory.Object; Status : out Pool.Status); entry Abandon (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status); entry Read (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status); entry Update (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status); entry Abandon_Update (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status); entry Is_Controlled (Object : Directory.Object; Status : out Boolean); end Manager; task body Manager is separate; procedure Control (Object : Directory.Object; Status : out Pool.Status) is begin Manager.Control (Object => Object, Status => Status); end Control; procedure Uncontrol (Object : Directory.Object; Status : out Pool.Status) is begin Manager.Uncontrol (Object => Object, Status => Status); end Uncontrol; procedure Abandon (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status) is begin Manager.Abandon (Object => Object, Editor => Editor, Status => Status); end Abandon; procedure Read (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status) is begin Manager.Read (Object => Object, Editor => Editor, Status => Status); end Read; procedure Update (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status) is begin Manager.Update (Object => Object, Editor => Editor, Status => Status); end Update; procedure Abandon_Update (Object : Directory.Object; Editor : Object_Editor.Instance; Status : out Pool.Status) is begin Manager.Abandon_Update (Object => Object, Editor => Editor, Status => Status); end Abandon_Update; function Is_Controlled (Object : Directory.Object) return Boolean is Status : Boolean; begin Manager.Is_Controlled (Object => Object, Status => Status); return Status; end Is_Controlled; begin String_Map.Initialize (The_Map => Map); end Pool;