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

⟦3cca02511⟧ Ada Source

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

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 Socket_Defs;
use Socket_Defs;

with System;
with Ada_C;


package body Interface_C is


    procedure Get_Host_Name_C (The_Buffer : System.Address;
                               The_Buffer_Length : Integer);

    pragma Interface (C, Get_Host_Name_C);
    pragma Interface_Information (Get_Host_Name_C, ".Get_host_name");


    procedure Get_Host_Name (The_Buffer : out String;
                             The_Buffer_Length : Integer) is  
    begin
        Get_Host_Name_C (The_Buffer (The_Buffer'First)'Address,
                         The_Buffer_Length);
    end Get_Host_Name;








    procedure Close_Socket_C (The_Socket_Id : Socket_Id);
    pragma Interface (C, Close_Socket_C);
    pragma Interface_Information (Close_Socket_C, ".Close_Socket");


    procedure Close_Socket (The_Socket_Id : Socket_Id) is
    begin
        Close_Socket_C (The_Socket_Id);
    end Close_Socket;






    procedure Create_Socket_C (The_Socket_Port : System.Address;
                               The_Socket_Type : Integer;
                               The_New_Socket : System.Address);
    pragma Interface (C, Create_Socket_C);
    pragma Interface_Information (Create_Socket_C, ".Create_Socket");

    procedure Create_Socket (The_Socket_Port : in out Socket_Port;
                             The_Socket_Type : in Integer;
                             The_New_Socket : out Socket_Id) is
    begin

        Create_Socket_C (The_Socket_Port'Address, The_Socket_Type,
                         The_New_Socket'Address);
    end Create_Socket;









    function Create_Server_C
                (The_Server_Socket_Port : Socket_Port) return Socket_Id;
    pragma Interface (C, Create_Server_C);
    pragma Interface_Information (Create_Server_C, ".Create_Server");


    function Create_Server
                (The_Server_Socket_Port : in Socket_Port) return Socket_Id is
    begin
        return Create_Server_C (The_Server_Socket_Port);
    end Create_Server;








    function Server_Wait_For_A_Connection_C
                (The_Listen_Socket : Socket_Id) return Socket_Id;
    pragma Interface (C, Server_Wait_For_A_Connection_C);
    pragma Interface_Information (Server_Wait_For_A_Connection_C,
                                  ".Server_Wait_For_A_Connection");


    function Server_Wait_For_A_Connection
                (The_Listen_Socket : in Socket_Id) return Socket_Id is
    begin
        return Server_Wait_For_A_Connection_C (The_Listen_Socket);
    end Server_Wait_For_A_Connection;










    function Join_Server_C
                (The_Server_Name : System.Address;
                 The_Server_Socket_Port : Socket_Port) return Socket_Id;
    pragma Interface (C, Join_Server_C);
    pragma Interface_Information (Join_Server_C, ".Join_Server");


    function Join_Server
                (The_Server_Name : in String;
                 The_Server_Socket_Port : in Socket_Port) return Socket_Id is
--        C_Server_Name : constant String :=
--           Ada_C.String_Ada_To_C (The_Server_Name);

    begin
--        return Join_Server_C (C_Server_Name (C_Server_Name'First)'Address,
--                              The_Server_Socket_Port);
        return Join_Server_C (The_Server_Name (The_Server_Name'First)'Address,
                              The_Server_Socket_Port);
    end Join_Server;










    procedure Send_String_C (Remote_Socket_Id : Socket_Id;
                             Buffer_To_Send : System.Address;
                             Length_Of_Buffer_To_Send : Integer;
                             Number_Of_Caracteres_Sent : System.Address);
    pragma Interface (C, Send_String_C);
    pragma Interface_Information (Send_String_C, ".Send_String");

    procedure Send_String (Remote_Socket_Id : in Socket_Id;
                           Buffer_To_Send : in out String;
                           Length_Of_Buffer_To_Send : in Integer;  
                           Number_Of_Caracteres_Sent : out Integer) is
        C_Buffer : constant String := Ada_C.String_Ada_To_C (Buffer_To_Send);
    begin
        Send_String_C (Remote_Socket_Id, C_Buffer (C_Buffer'First)'Address,
                       Length_Of_Buffer_To_Send,
                       Number_Of_Caracteres_Sent'Address);
    end Send_String;





    procedure Receive_String_C (Remote_Socket_Id : Socket_Id;
                                Buffer_To_Receive : System.Address;
                                Length_Of_Buffer_To_Receive : Integer;
                                Number_Of_Caracteres_Received : System.Address);
    pragma Interface (C, Receive_String_C);
    pragma Interface_Information (Receive_String_C, ".Receive_String");


    procedure Receive_String (Remote_Socket_Id : in Socket_Id;
                              Buffer_To_Receive : in out String;
                              Length_Of_Buffer_To_Receive : in Integer;  
                              Number_Of_Caracteres_Received : out Integer) is
        C_Buffer : constant String := Ada_C.String_Ada_To_C (Buffer_To_Receive);

    begin
--        Receive_String_C (Remote_Socket_Id, C_Buffer (C_Buffer'First)'Address,
--                          Length_Of_Buffer_To_Receive,
--                          Number_Of_Caracteres_Received'Address);
--       Buffer_To_Receive := Ada_C.String_C_To_Ada
--                                (C_Buffer (C_Buffer'First)'Address);
        Receive_String_C (Remote_Socket_Id,
                          Buffer_To_Receive (Buffer_To_Receive'First)'Address,
                          Length_Of_Buffer_To_Receive,
                          Number_Of_Caracteres_Received'Address);
    end Receive_String;






end Interface_C;

E3 Meta Data

    nblk1=8
    nid=0
    hdr6=10
        [0x00] rec0=30 rec1=00 rec2=01 rec3=026
        [0x01] rec0=1e rec1=00 rec2=08 rec3=09a
        [0x02] rec0=2a rec1=00 rec2=02 rec3=014
        [0x03] rec0=00 rec1=00 rec2=03 rec3=006
        [0x04] rec0=1d rec1=00 rec2=07 rec3=016
        [0x05] rec0=02 rec1=00 rec2=05 rec3=04c
        [0x06] rec0=17 rec1=00 rec2=06 rec3=04c
        [0x07] rec0=15 rec1=00 rec2=04 rec3=001
    tail 0x2171f6236839c4a565d54 0x42a00088462060003