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

⟦4cc169615⟧ Ada Source

    Length: 9216 (0x2400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, package body Com_Orb_Recep, seg_055cf9

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, Text_Manager, Utils,
     Byte_Defs, Host_Id_Io, Com_Defs, Com_Storage_Recep;
--Com_Storage_Socket;
package body Com_Orb_Recep is
    procedure Init_Recep (Init_Connection : in out Transport.Connection_Id;
                          Init_Host_Orb : in Transport_Defs.Host_Id;
                          Init_Socket_Orb : in Transport_Defs.Socket_Id) is
        Status : Transport_Defs.Status_Code;
        Network_Name : constant Transport_Defs.Network_Name := "TCP/IP";
        Count : Natural;
    begin
        --Com_Storage_Socket.Manager_Socket.Write
        --   (Init_Host_Orb, Init_Socket_Orb);
        loop
            Transport.Open (Init_Connection, Status,
                            Network_Name, Init_Socket_Orb);  
            exit when Transport.Is_Open (Init_Connection) = True;
        end loop;
        Text_Manager.Text.Put_Line ("Orb recep is opened");
    end Init_Recep;


    task body Orb_Recep is
        Connection : Transport.Connection_Id;
        Network_Name : constant Transport_Defs.Network_Name := "TCP/IP";
        Host_Orb : constant Transport_Defs.Host_Id :=
           Transport.Local_Host (Network_Name);
        Socket_Orb : Transport_Defs.Socket_Id (1 .. 2) := (10, 49);
        Status : Transport_Defs.Status_Code;
        Count : Natural;
        Data_Receive_Orb : Byte_Defs.Byte_String (1 .. 258);
        Data_Message : Com_Defs.V_String;
        New_Connect : Byte_Defs.Byte := 0;
        Data_Dest_Appli : Byte_Defs.Byte := 0;
        Data_Mes_Type : Byte_Defs.Byte := 0;
        Data_Mes_Length : Byte_Defs.Byte := 0;
        String_Verif : Byte_Defs.Byte_String (1 .. 2);
        Host_Slave : Transport_Defs.Host_Id (1 .. 4);
        Socket_Slave : Transport_Defs.Socket_Id (1 .. 2);
        Length_Integer : Integer := 0;
    begin
        --Com_Storage_Socket.Manager_Socket.Write (Host_Orb, Socket_Orb);
        Init_Recep (Connection, Host_Orb, Socket_Orb);
        loop
            loop
                Transport.Connect (Connection, Status, Duration'Last);
                Text_Manager.Text.Put_Line ("try to connect recepteur " &
                                            Transport_Defs.Image (Status));
                exit when Transport.Is_Connected (Connection) = True;
            end loop;
            Text_Manager.Text.Put_Line ("I am trying to receive the message");
            Transport.Receive (Connection, Status, Data_Receive_Orb,
                               Count, Duration'Last);
            Data_Mes_Type := Data_Receive_Orb (1);
            Data_Dest_Appli := Data_Receive_Orb (2);
            Data_Mes_Length := Data_Receive_Orb (3);
            if Byte_Defs."=" (Data_Mes_Type, New_Connect) = True then
                Text_Manager.Text.Put_Line ("new connection request");
                Host_Slave := Transport_Defs.Host_Id
                                 (Data_Receive_Orb (2 .. 5));
                Socket_Slave := Transport_Defs.Socket_Id
                                   (Data_Receive_Orb (6 .. 7));
                --         Com_Storage_Socket.Manager_Socket.Write
                --           (Host_Slave, Socket_Slave);
            else
                Text_Manager.Text.Put_Line ("normal message");
            end if;  
            Text_Manager.Text.Put_Line
               (Utils.Byte_String_To_String
                   (Data_Receive_Orb (4 .. Integer (Data_Mes_Length) + 3)));
            Data_Message := Com_Defs.Value
                               (Utils.Byte_String_To_String
                                   (Data_Receive_Orb
                                       (4 .. Integer (Data_Mes_Length) + 3)));
            Com_Storage_Recep.Manager_Storage.Write
               (Com_Defs.Com_Number (Data_Dest_Appli), Data_Message);
            Text_Manager.Text.Put_Line ("com_recep_orb message recu " &
                                        Com_Defs.Image (Data_Message));
            Length_Integer := Integer (Data_Mes_Length);
            Text_Manager.Text.Put_Line ("com_recep_orb length recu " &
                                        Integer'Image (Length_Integer));


            Transport.Disconnect (Connection);
        end loop;
        Transport.Close (Connection);
    end Orb_Recep;
end Com_Orb_Recep;

E3 Meta Data

    nblk1=8
    nid=6
    hdr6=e
        [0x00] rec0=19 rec1=00 rec2=01 rec3=01c
        [0x01] rec0=00 rec1=00 rec2=08 rec3=008
        [0x02] rec0=14 rec1=00 rec2=07 rec3=00c
        [0x03] rec0=11 rec1=00 rec2=03 rec3=03e
        [0x04] rec0=05 rec1=00 rec2=04 rec3=06a
        [0x05] rec0=14 rec1=00 rec2=02 rec3=020
        [0x06] rec0=03 rec1=00 rec2=05 rec3=000
        [0x07] rec0=68 rec1=7b rec2=c4 rec3=705
    tail 0x21761065c87c069734cc8 0x42a00088462060003
Free Block Chain:
  0x6: 0000  00 00 00 cc 80 0f 5f 4f 72 62 20 28 36 20 2e 2e  ┆      _Orb (6 ..┆