## internet-socket.api
# Compiled by:
#
src/lib/std/standard.libstipulate
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.pkgherein
# 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.