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

⟦833518ada⟧ Ada Source

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

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 Transport, Transport_Defs, Byte_Defs, Text_Io, Utils, Host_Id_Io;
package body Com_Trans_Slave is
    task body Slave_Receiver is
        Connection : Transport.Connection_Id;
        Status : Transport_Defs.Status_Code;
        Network_Name : constant Transport_Defs.Network_Name := "TCP/IP";
        Count : Natural;
        Transmit_Data : Byte_Defs.Byte_String (1 .. 500);
        Receive_Data : Byte_Defs.Byte_String (1 .. 500);
        Init_Socket_Orb : Transport_Defs.Socket_Id (1 .. 2) := (10, 49);
        Init_Host_Orb : Transport_Defs.Host_Id (1 .. 4) := (193, 54, 146, 133);
    begin
        loop
            -- select
            --   accept Init (Init_Host_Orb : in Transport_Defs.Host_Id;
            --              Init_Socket_Orb : in Transport_Defs.Socket_Id) do
            --   begin
            loop
                Transport.Open (Connection, Status, Network_Name);  
                exit when Transport.Is_Open (Connection) = True;
            end loop;
            Transmit_Data (6 .. 7) := Byte_Defs.Byte_String
                                         (Transport.Local_Socket (Connection));
            Transmit_Data (2 .. 5) := Byte_Defs.Byte_String
                                         (Transport.Local_Host (Connection));
            Transmit_Data (1) := 0;
            Text_Io.Put ("My Socket esclave : ");
            Text_Io.Put_Line (Utils.Byte_String_To_String
                                 (Byte_Defs.Byte_String
                                     (Transport.Local_Socket (Connection))));
            Text_Io.Put ("My Machine esclave : ");
            Text_Io.Put_Line (Host_Id_Io.Image
                                 (Transport.Local_Host (Connection)));
            Text_Io.Put_Line ("Slave is opened");
            loop
                Transport.Connect
                   (Connection, Status,  
                    Init_Host_Orb, Init_Socket_Orb, Duration'Last);
                exit when Transport.Is_Connected (Connection) = True;
            end loop;
            Text_Io.Put_Line ("Slave is active connected");
            Transport.Transmit (Connection, Status, Transmit_Data,
                                Count, Duration'Last);
            Transport.Disconnect (Connection);
            Text_Io.Put_Line ("Slave is deconnected");
            loop
                Transport.Connect (Connection, Status, Duration'Last);
                exit when Transport.Is_Connected (Connection) = True;
            end loop;
            Text_Io.Put_Line ("Slave is passive connected");
            loop
                [statement]
            end loop;
            Transport.Disconnect (Connection);
            Text_Io.Put_Line ("Slave is deconnected");
            Transport.Close (Connection);
            Text_Io.Put_Line ("Slave is closed");
            Slave_Transmitter.Init (Init_Host_Orb, Init_Socket_Orb);
            --      end;
            --  end Init;
            --  end select;
        end loop;
    end Slave_Receiver;


    task body Slave_Transmitter is
        Connection : Transport.Connection_Id;
        Status : Transport_Defs.Status_Code;
        Network_Name : constant Transport_Defs.Network_Name := "TCP/IP";
        Count : Natural;
        Old_Machine : Byte_Defs.Byte := 1;
        Transmit_Data : Byte_Defs.Byte_String (1 .. 500);
    begin
        loop
            select
                accept Init (Init_Host_Orb : in Transport_Defs.Host_Id;
                             Init_Socket_Orb : in Transport_Defs.Socket_Id) do

                    loop
                        Transport.Open (Connection, Status, Network_Name);  
                        exit when Transport.Is_Open (Connection) = True;
                    end loop;
                    Text_Io.Put_Line ("slave transmitter is opened");
                    loop
                        Transport.Connect
                           (Connection, Status,  
                            Init_Host_Orb, Init_Socket_Orb, Duration'Last);
                        exit when Transport.Is_Connected (Connection) = True;
                    end loop;
                    Text_Io.Put_Line ("Slave transmitter is active connected");
                    Transport.Disconnect (Connection);
                    Text_Io.Put_Line ("Slave transmitter is deconnected");

                    Transport.Close (Connection);
                    Text_Io.Put_Line ("Slave transmitter is closed");
                end Init;
            end select;
        end loop;
    end Slave_Transmitter;
end Com_Trans_Slave;

E3 Meta Data

    nblk1=5
    nid=0
    hdr6=a
        [0x00] rec0=16 rec1=00 rec2=01 rec3=018
        [0x01] rec0=12 rec1=00 rec2=02 rec3=046
        [0x02] rec0=16 rec1=00 rec2=03 rec3=00e
        [0x03] rec0=19 rec1=00 rec2=04 rec3=052
        [0x04] rec0=0f rec1=00 rec2=05 rec3=000
    tail 0x2175da8c487b8878f3a2f 0x42a00088462060003