PreviousUpNext

15.3.522  src/lib/std/src/socket/internet-socket.api

## internet-socket.api

# Compiled by:
#     src/lib/std/src/standard-core.sublib



###                   "Beauty? What's that?"
###
###                        -- Larry Wall



api Internet_Socket {

    Inet;
                                                                # pre_socket            is from   src/lib/std/src/socket/pre-socket.pkg
    Socket( A_sock_type )
        =
        pre_socket::Socket( Inet, A_sock_type );

    Stream_Socket( A_mode )
        =
        Socket( pre_socket::Stream( A_mode ) );

    Datagram_Socket
        =
        Socket( pre_socket::Datagram );

    Socket_Address
        =
        pre_socket::Socket_Address( Inet );

    inet_af:  pre_socket::af::Address_Family;                   #  DARPA internet protocols 

                                                                # dns_host_lookup       is from   src/lib/std/src/socket/dns-host-lookup.pkg
    to_address
        :
        ( dns_host_lookup::Internet_Address,
          Int
        )
        ->
        Socket_Address;

    from_address
        :
        Socket_Address
        ->
        ( dns_host_lookup::Internet_Address,
          Int
        );


    any:   Int -> Socket_Address;

    package udp:  api { socket:   Void -> Datagram_Socket;
                        socket':  Int  -> Datagram_Socket;
                      };

    package tcp:  api { socket:   Void -> Stream_Socket( A_mode );
                        socket' : Int  -> Stream_Socket( A_mode );

                        # TCP control options:
                        # 
                        get_nodelay:    Stream_Socket( A_mode ) -> Bool;
                        set_nodelay:   (Stream_Socket( A_mode ), Bool) -> Void;
                      };

    to_string: Socket(X) -> String;                             # For debug printouts etc.

    set_printif_fd: Int -> Void;                                # Enable C-level socket I/O debug print_ifs to given fd -- see src/c/lib/socket/setprintiffd.c
};


## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2012,
## released under Gnu Public Licence version 3.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext