DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦c33671b9f⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, procedure Test_Pool, seg_00f195

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



with Directory;
with Object_Editor;
with Text_Io;
with Pool;
procedure Test_Pool is
    package Ao renames Directory.Any_Object;

    O1, O2, O3         : Directory.Object       := Directory.Nil;  
    E1_1, E1_2, E2, E3 : Object_Editor.Instance := Object_Editor.Nil;
    Ao_Status          : Ao.Status;  
    Pool_Status        : Pool.Status;
begin
    Object_Editor.Create (Editor => E1_1);
    Object_Editor.Create (Editor => E1_2);
    Object_Editor.Create (Editor => E2);
    Object_Editor.Create (Editor => E3);

    Ao.Create (The_Object => O1, Object_Name => "/u/pam", Status => Ao_Status);
    Text_Io.Put_Line ("create o1 " & Ao.Status'Image (Ao_Status));
    Ao.Create (The_Object  => O2,
               Object_Name => "/u/pam/experiment",
               Status      => Ao_Status);
    Text_Io.Put_Line ("create o2 " & Ao.Status'Image (Ao_Status));
    Ao.Create (The_Object  => O3,
               Object_Name => "/u/pam/experiment/test",
               Status      => Ao_Status);
    Text_Io.Put_Line ("create o3 " & Ao.Status'Image (Ao_Status));
    Text_Io.New_Line;

    Pool.Control (Object => O1, Status => Pool_Status);
    Text_Io.Put_Line ("control o1 " & Pool.Status'Image (Pool_Status));
    Pool.Control (Object => O2, Status => Pool_Status);
    Text_Io.Put_Line ("control o2 " & Pool.Status'Image (Pool_Status));
    Pool.Control (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("control o3 " & Pool.Status'Image (Pool_Status));
    Pool.Control (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("control o3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Text_Io.Put_Line ("Is_controlled o1 = " &
                      Boolean'Image (Pool.Is_Controlled (O1)));
    Text_Io.Put_Line ("Is_controlled o2 = " &
                      Boolean'Image (Pool.Is_Controlled (O2)));
    Text_Io.Put_Line ("Is_controlled o3 = " &
                      Boolean'Image (Pool.Is_Controlled (O3)));
    Text_Io.New_Line;


    Pool.Read (Object => O1, Editor => E1_1, Status => Pool_Status);
    Text_Io.Put_Line ("read o1 e1_1 " & Pool.Status'Image (Pool_Status));
    Pool.Read (Object => O1, Editor => E1_2, Status => Pool_Status);
    Text_Io.Put_Line ("read o1 e1_2 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Update (Object => O2, Editor => E2, Status => Pool_Status);
    Text_Io.Put_Line ("update o2 e2 " & Pool.Status'Image (Pool_Status));
    Pool.Update (Object => O2, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("update o2 e3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Abandon (Object => O2, Editor => E2, Status => Pool_Status);
    Text_Io.Put_Line ("abandon o2 e2 " & Pool.Status'Image (Pool_Status));
    Pool.Update (Object => O2, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("update o2 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Read (Object => O2, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("read o2 e3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Read (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("read o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Uncontrol (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("uncontrol o3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Uncontrol (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("uncontrol o3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Control (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("control o3 " & Pool.Status'Image (Pool_Status));
    Pool.Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("update o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Uncontrol (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("uncontrol o3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Uncontrol (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("uncontrol o3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Control (Object => O3, Status => Pool_Status);
    Text_Io.Put_Line ("control o3 " & Pool.Status'Image (Pool_Status));
    Pool.Read (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("read o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon_Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon update o3 e3 " &
                      Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("update o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon_Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon update o3 e3 " &
                      Pool.Status'Image (Pool_Status));
    Pool.Abandon (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon o3 e3 " & Pool.Status'Image (Pool_Status));
    Text_Io.New_Line;


    Pool.Read (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("read o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("update o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon o3 e3 " & Pool.Status'Image (Pool_Status));
    Pool.Abandon_Update (Object => O3, Editor => E3, Status => Pool_Status);
    Text_Io.Put_Line ("abandon update o3 e3 " &
                      Pool.Status'Image (Pool_Status));


end Test_Pool;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=1b rec1=00 rec2=01 rec3=01c
        [0x01] rec0=00 rec1=00 rec2=08 rec3=00a
        [0x02] rec0=14 rec1=00 rec2=04 rec3=07c
        [0x03] rec0=16 rec1=00 rec2=06 rec3=04e
        [0x04] rec0=14 rec1=00 rec2=02 rec3=014
        [0x05] rec0=14 rec1=00 rec2=05 rec3=01a
        [0x06] rec0=11 rec1=00 rec2=03 rec3=028
        [0x07] rec0=04 rec1=00 rec2=07 rec3=000
    tail 0x2170baa5482295f9e1f05 0x42a00088462062803