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

⟦9bf63c1b5⟧ Ada Source

    Length: 7168 (0x1c00)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Control_Manager, seg_0574a5

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 Frame_Defs;
with Service_Manager;
with Orb_Defs;
with Mail_Sender;  
with Text_Io;

package body Control_Manager is

    package Frame_Sender is new Mail_Sender
                                   (Frame_Defs.Frame, Frame_Defs.Get_Frame);



    task Control_Manager_Task is
        entry Dispose;
    end Control_Manager_Task;

    task body Control_Manager_Task is
        The_Connection_Id : Orb_Defs.Connection_Id;
        The_Host_Id : Orb_Defs.Host_Id;
        The_Socket_Id : Orb_Defs.Socket_Id;
        The_Error, The_Success : Boolean := True;
        The_Time_Out : Positive := 30;
        The_Test_Frame : Frame_Defs.Frame;
        Done : Boolean := False;
    begin

        Text_Io.Put_Line ("Control Manager is alive !!");

        loop

            select

                accept Dispose do
                    Done := True;
                end Dispose;

            else

                The_Error := True;
                while The_Error = True loop
                    delay (60.0);
                    Service_Manager.Ask_Agent_To_Test
                       (The_Connection_Id, The_Host_Id,
                        The_Socket_Id, The_Error);
                    if The_Error = True then
                        Text_Io.Put_Line ("Control Manager : no agent to test");
                    else
                        Text_Io.Put_Line
                           ("Control Manager : there is a agent to test");
                    end if;
                end loop;

                Frame_Defs.Init_Frame
                   ("orb ", The_Socket_Id, The_Host_Id,
                    Orb_Defs.Default_Orb_Socket,
                    Orb_Defs.Default_Orb_Host, 0, 0, "chck", "chck",
                    "Agent, are you alive ??", The_Test_Frame);

                Text_Io.Put_Line
                   ("Control Manager is going to send the frame :");
                Text_Io.Put_Line (Frame_Defs.Image (The_Test_Frame));

                Frame_Sender.Send_Mail (The_Connection_Id, The_Host_Id,
                                        The_Socket_Id, The_Time_Out,
                                        The_Success, The_Test_Frame);


                if The_Success = True then
                    Service_Manager.Set_Agent_To_Ok
                       (The_Host_Id, The_Socket_Id);
                    Text_Io.Put_Line ("Control Manager : the agent is Ok");
                else
                    Text_Io.Put_Line ("going to set agent to failure");
                    Service_Manager.Set_Agent_To_Failure
                       (The_Host_Id, The_Socket_Id);
                    Text_Io.Put_Line
                       ("Control Manager : the agent is set to failure");
                end if;

            end select;

            exit when Done = True;

            Text_Io.Put_Line ("Control Manager is alive !!");

            delay (10.0);
        end loop;

    end Control_Manager_Task;

    procedure Dispose is
    begin
        Control_Manager_Task.Dispose;
    end Dispose;


end Control_Manager;

E3 Meta Data

    nblk1=6
    nid=4
    hdr6=8
        [0x00] rec0=2a rec1=00 rec2=01 rec3=00e
        [0x01] rec0=15 rec1=00 rec2=06 rec3=054
        [0x02] rec0=1a rec1=00 rec2=02 rec3=014
        [0x03] rec0=0b rec1=00 rec2=05 rec3=000
        [0x04] rec0=07 rec1=00 rec2=02 rec3=000
        [0x05] rec0=01 rec1=00 rec2=03 rec3=000
    tail 0x2176459cc87c78351275d 0x42a00088462060003
Free Block Chain:
  0x4: 0000  00 03 00 59 80 23 20 20 20 20 20 20 43 6f 6e 74  ┆   Y #      Cont┆
  0x3: 0000  00 00 00 0a 80 04 67 65 72 3b 04 00 00 00 53 6f  ┆      ger;    So┆