PreviousUpNext

15.4.1180  src/lib/std/src/socket/threadkit-internet-socket.pkg

## threadkit-internet-socket.pkg

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


stipulate
    package is  =  internet_socket;                                             # internet_socket               is from   src/lib/std/src/socket/internet-socket.pkg
    package pre =  threadkit_pre_socket;                                        # threadkit_pre_socket          is from   src/lib/std/src/socket/threadkit-pre-socket.pkg
    package sok =  socket;                                                      # socket                        is from   src/lib/std/socket.pkg
    package tps =  threadkit_plain_socket;                                      # threadkit_plain_socket        is from   src/lib/std/src/socket/threadkit-plain-socket.pkg
    package ts  =  threadkit_socket;                                            # threadkit_socket              is from   src/lib/std/src/socket/threadkit-socket.pkg
herein

    package   threadkit_internet_socket
    : (weak)  Threadkit_Internet_Socket                                         # Threadkit_Internet_Socket     is from   src/lib/std/src/socket/threadkit-internet-socket.api
    {
        Inet = is::Inet;

        Threadkit_Socket(X) = ts::Threadkit_Socket (Inet, X); 
        Stream_Socket(X)    = Threadkit_Socket( sok::Stream(X) );
        Datagram_Socket     = Threadkit_Socket( sok::Datagram );

        Socket_Address = sok::Socket_Address( Inet );

        inet_af = is::inet_af;

        to_address   = is::to_address;
        from_address = is::from_address;
        any          = is::any;

        package udp {
            #
            fun socket ()
                =
                tps::socket (inet_af, sok::socket::datagram);

            fun socket' proto
                =
                tps::socket' (inet_af, sok::socket::datagram, proto);
        };

        package tcp {
            #
            fun socket ()
                =
                tps::socket (inet_af, sok::socket::stream);

            fun socket' proto
                =
                tps::socket' (inet_af, sok::socket::stream, proto);


            # TCP control options: 
            #
            fun get_nodelay (pre::THREADKIT_SOCKET { socket, ... } )
                =
                is::tcp::get_nodelay socket;
            #
            fun set_nodelay (pre::THREADKIT_SOCKET { socket, ... }, flag)
                =
                is::tcp::set_nodelay (socket, flag);
        };
    };
end;

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


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext