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

⟦a5d647ad6⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package Database, seg_026ccd

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 Umps_Defs;
with Direct_Io;  
with Slot;
with Request;
with Notice;


package Database is

    type Actions is (Interested, Performed, Both);
    type States  is (Lock, Unlock, Both);


    procedure Open;
    procedure Close;


    procedure Put (The_Element : Request.Element;
                   Action      : Actions := Performed;
                   Status      : States  := Unlock);
    procedure Put (The_Element : Notice.Element);


    type Iter_Request is private;

    procedure Init (Iter     : in out Iter_Request;
                    On       :        Request.Element;
                    Field    :        Slot.Fields := Slot.On_Value;
                    Action   :        Actions := Interested;
                    State    :        States := Unlock;
                    Behavior :        Umps_Defs.Behavior_Number :=
                       Umps_Defs.ny_Behaviors);
    function  Done (Iter : Iter_Request) return Boolean;
    procedure Value (Iter        :     Iter_Request;
                     The_Element : out Request.Element;
                     Action      : out Actions;
                     State       : out States);
    procedure Replace (Iter        : Iter_Request;
                       The_Element : Request.Element;
                       With_Action : Actions := Performed;
                       With_State  : States  := Unlock);
    procedure Next (Iter : in out Iter_Request);


    type Iter_Notice is private;

    procedure Init (Iter     : in out Iter_Notice;
                    On       :        Notice.Element;
                    Field    :        Slot.Fields := Slot.On_Value;
                    Behavior :        Umps_Defs.Behavior_Number :=
                       Umps_Defs.Any_Behaviors);
    function  Done (Iter : Iter_Notice) return Boolean;
    procedure Value (Iter : Iter_Notice; The_Element : out Notice.Element);
    procedure Replace (Iter : Iter_Notice; The_Element : Notice.Element);
    procedure Next (Iter : in out Iter_Notice);


    Iterator_Error : exception;

    Already_Open_Error      : exception;
    Not_Open_Error          : exception;
    Too_Many_Requests_Error : exception;
    Too_Many_Notices_Error  : exception;
    Integrity_Error         : exception;
    Device_Error            : exception;
    Internal_Error          : exception;

    procedure Display;
    procedure Destroy;


-------------------------------------------------------------------------------
private

    type Request_Data is
        record
            State       : States;
            Action      : Actions;
            The_Element : Request.Element;
        end record;

    type Notice_Data is
        record  
            The_Element : Notice.Element;
        end record;

    package Request_Io is new Direct_Io (Request_Data);
    package Notice_Io  is new Direct_Io (Notice_Data);

    type Iter_Request is
        record
            Condition_Data : Request.Element;
            Count          : Request_Io.Count := Request_Io.Count'First;
            Field          : Slot.Fields      := Slot.On_Value;
            State          : States           := Unlock;
            Action         : Actions          := Performed;
        end record;

    type Iter_Notice is
        record
            Condition_Data : Notice.Element;
            Count          : Notice_Io.Count := Notice_Io.Count'First;
            Field          : Slot.Fields     := Slot.On_Value;
        end record;

end Database;
-------------------------------------------------------------------------------

E3 Meta Data

    nblk1=6
    nid=0
    hdr6=c
        [0x00] rec0=22 rec1=00 rec2=01 rec3=042
        [0x01] rec0=00 rec1=00 rec2=04 rec3=002
        [0x02] rec0=15 rec1=00 rec2=02 rec3=05e
        [0x03] rec0=00 rec1=00 rec2=05 rec3=004
        [0x04] rec0=23 rec1=00 rec2=03 rec3=00a
        [0x05] rec0=15 rec1=00 rec2=06 rec3=000
    tail 0x21520431483aa675f3e17 0x42a00088462063c03