|
|
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: 17408 (0x4400)
Types: Ada Source
Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Pool, seg_0222f5
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦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;
nblk1=10
nid=9
hdr6=a
[0x00] rec0=20 rec1=00 rec2=01 rec3=064
[0x01] rec0=1b rec1=00 rec2=07 rec3=06c
[0x02] rec0=17 rec1=00 rec2=04 rec3=00e
[0x03] rec0=19 rec1=00 rec2=0b rec3=038
[0x04] rec0=0b rec1=00 rec2=08 rec3=000
[0x05] rec0=06 rec1=00 rec2=09 rec3=000
[0x06] rec0=19 rec1=00 rec2=08 rec3=00a
[0x07] rec0=1a rec1=00 rec2=04 rec3=04e
[0x08] rec0=07 rec1=00 rec2=07 rec3=000
[0x09] rec0=07 rec1=00 rec2=07 rec3=000
[0x0a] rec0=06 rec1=00 rec2=06 rec3=000
[0x0b] rec0=06 rec1=00 rec2=06 rec3=000
[0x0c] rec0=06 rec1=00 rec2=06 rec3=000
[0x0d] rec0=1e rec1=00 rec2=07 rec3=02c
[0x0e] rec0=06 rec1=00 rec2=06 rec3=000
[0x0f] rec0=00 rec1=00 rec2=00 rec3=000
tail 0x2171df366839169f5128f 0x42a00088462062803
Free Block Chain:
0x9: 0000 00 0c 00 4b 00 00 00 00 00 00 00 05 62 65 67 69 ┆ K begi┆
0xc: 0000 00 0a 00 7c 80 46 20 20 4d 61 6e 61 67 65 72 2e ┆ | F Manager.┆
0xa: 0000 00 0d 03 fc 80 29 20 20 20 20 20 20 20 20 20 20 ┆ ) ┆
0xd: 0000 00 05 03 fc 80 31 20 61 63 63 65 70 74 20 55 6e ┆ 1 accept Un┆
0x5: 0000 00 0f 03 f8 80 22 20 20 20 20 20 20 20 20 20 20 ┆ " ┆
0xf: 0000 00 06 00 0c 80 01 3b 01 00 05 20 20 20 20 65 05 ┆ ; e ┆
0x6: 0000 00 02 00 5d 80 04 29 20 69 73 04 00 09 20 20 20 ┆ ] ) is ┆
0x2: 0000 00 03 03 fc 80 07 65 6e 64 20 69 66 3b 07 00 00 ┆ end if; ┆
0x3: 0000 00 10 03 fc 80 1e 3a 3d 20 4f 62 6a 65 63 74 5f ┆ := Object_┆
0x10: 0000 00 0e 00 26 80 0d 6c 79 5f 44 65 66 69 6e 65 64 ┆ & ly_Defined┆
0xe: 0000 00 00 00 54 00 0d 20 20 20 20 65 78 63 65 70 74 ┆ T except┆