PreviousUpNext

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

## internet-socket.api

# Compiled by:
#     src/lib/std/standard.lib


stipulate
    package dhl =  dns_host_lookup;                                             # dns_host_lookup               is from   src/lib/std/src/socket/dns-host-lookup.pkg
    package ps  =  proto_socket__premicrothread;                                # proto_socket__premicrothread  is from   src/lib/std/src/socket/proto-socket--premicrothread.pkg
    package tps =  proto_socket;                                                # proto_socket          is from   src/lib/std/src/socket/proto-socket.pkg
herein

    # This api is implemented in:
    #
    #     src/lib/std/src/socket/internet-socket.pkg
    #
    api Internet_Socket {
        #
        Inet;

        Threadkit_Socket( A_sock_type )
            =
            tps::Threadkit_Socket( Inet, A_sock_type );

        Stream_Socket( A_mode )
            =
            Threadkit_Socket( ps::Stream( A_mode ) );

        Datagram_Socket
            =
            Threadkit_Socket( ps::Datagram );

        Socket_Address
            =
            ps::Socket_Address( Inet );

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

        to_address
            :
            ( dhl::Internet_Address,
              Int
            )
            ->
            Socket_Address;

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


        any:   Int -> Socket_Address;

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

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

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

## COPYRIGHT (c) 1995 AT&T Bell Laboratories.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext