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

⟦8275b9828⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Agent, seg_02c8a6

Derivation

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

E3 Source Code



with Identifier;
with Message;  
with Message_Transport;

generic


    with procedure Publish (Self : Identifier.Object);
    --
    -- This procedure is called after registration, and is intended
    -- to perform all initial publications.


    with procedure Process_Message (Message : Standard.Message.Object;
                                    Handled : out Boolean);
    --
    -- This procedure is called when the server receives an incoming message.
    --
    -- If the message is unknown (this happens if the message is an answer
    -- to some actor's request) the Handled flag must be set to false.


package Agent is


    -- An agent is a dual behavior, with a server part and an actor part.
    --
    -- The server communicates with the actor via messages, transmitted
    -- internaly.
    --
    -- The actor chooses to wait or not for messages handed over by the server.
    --
    -- The server discards messages which cannot be delivered to the actor.



    function Get_Identity return Identifier.Object;
    --
    -- Returns the unique identifier which has been received during
    -- registration
    --
    -- Raises Not_Yet_Registered_Error when the agent is not properly
    -- registered



    procedure Wait_For_Reply (Message : out Standard.Message.Object;
                              Time_Out : Duration;
                              Expired : out Boolean);
    --
    -- Answers to actor's requests are handed over by the server.
    --
    -- The actor must be waiting for the reply in order to receive it from
    -- the server.
    --
    -- Control is returned to the actor either when a message is received
    -- or when the Time_Out has expired.
    --
    -- If the transmiter part is not waiting, the message is simply discarded.



    generic  
        with procedure Actor;
        --
        -- This procedure is intended to send messages to the outside
        -- world.
        --
        -- Answers to requests are first handled by the receiver part, and next
        -- propagated to the actor, provided that the actor is waiting for
        -- a reply (by calling Wait_For_Reply).

    package Core is

        procedure Start;
        --
        -- This procedure never returns, it starts the actor and the server.

    end Core;


end Agent;

E3 Meta Data

    nblk1=4
    nid=3
    hdr6=6
        [0x00] rec0=22 rec1=00 rec2=01 rec3=066
        [0x01] rec0=21 rec1=00 rec2=02 rec3=080
        [0x02] rec0=11 rec1=00 rec2=04 rec3=000
        [0x03] rec0=06 rec1=00 rec2=03 rec3=000
    tail 0x21524e90e840573bface1 0x42a00088462060003
Free Block Chain:
  0x3: 0000  00 00 00 04 80 01 20 01 65 3b 04 00 00 00 00 00  ┆        e;      ┆