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

⟦a47ee5075⟧ Ada Source

    Length: 6144 (0x1800)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Time_Client, seg_02d4ec

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 Behavior;
with Identifier;
with Method;
with Message;
with Message_Transport;
with Parameter;
with Signature;
with Text_Io;

use Text_Io;
package body Time_Client is

    Iteration : Positive;
    Count : Natural := 0;

    procedure Process_Message (M : Message.Object);

    task Synchro is
        entry Receiver_Ready;
        entry Wait_For_Registration;
    end Synchro;

    task body Synchro is
    begin
        accept Receiver_Ready;

        accept Wait_For_Registration;
    end Synchro;

    procedure Null_Procedure is
    begin
        null;
    end Null_Procedure;

    package B is new Behavior (Synchro.Receiver_Ready, Process_Message);


    procedure Process_Message (M : Message.Object) is
        Status : Message_Transport.Status_Code;
    begin

        if Count mod Iteration = 0 then
            Put_Line (Message.Image (M));
            Count := 0;
        end if;
        Count := Count + 1;

        B.Send_Message (Message =>
                           Message.Create (Class => Message.Request,
                                           Addressee => Identifier.Hash
                                                           (Identifier.Broker),
                                           Sender => Identifier.Hash
                                                        (B.Get_Identity),
                                           Method => "date",
                                           Parameter_Name => "date",
                                           Parameter_Class => "string",
                                           Parameter_Value => Parameter.Void),
                        Status => Status);

    end Process_Message;


    procedure Start (Iteration : Positive := 1000) is
        Status : Message_Transport.Status_Code;
    begin  
        Time_Client.Iteration := Iteration;

        Put_Line ("--- delaying waiting for registration");

        Synchro.Wait_For_Registration;

        Put_Line ("+++ registration done");

        B.Send_Message (Message =>
                           Message.Create (Class => Message.Request,
                                           Addressee => Identifier.Hash
                                                           (Identifier.Broker),
                                           Sender => Identifier.Hash
                                                        (B.Get_Identity),
                                           Method => "date",
                                           Parameter_Name => "date",
                                           Parameter_Class => "string",
                                           Parameter_Value => Parameter.Void),
                        Status => Status);

        loop
            delay Duration'Last;
        end loop;

    end Start;

end Time_Client;

E3 Meta Data

    nblk1=5
    nid=2
    hdr6=6
        [0x00] rec0=2f rec1=00 rec2=01 rec3=036
        [0x01] rec0=17 rec1=00 rec2=03 rec3=000
        [0x02] rec0=18 rec1=00 rec2=04 rec3=000
        [0x03] rec0=10 rec1=00 rec2=02 rec3=000
        [0x04] rec0=80 rec1=00 rec2=00 rec3=100
    tail 0x2152685c0844e6b7dfe74 0x42a00088462060003
Free Block Chain:
  0x2: 0000  00 05 00 db 80 13 4d 65 73 73 61 67 65 20 28 4d  ┆      Message (M┆
  0x5: 0000  00 00 01 19 80 22 20 20 20 20 20 20 50 61 72 61  ┆     "      Para┆