///|
typealias Int64 as RawFd
///|
pub(all) struct Socket {
inner : RawFd
} derive(Show)
///|
fn socket_create_internal(
domain : Domain,
ty : Type,
protocol~ : Protocol? = None
) -> RawFd raise NetError {
...
}
///|
fn socket_close_internal(sockfd : RawFd) -> Unit raise NetError {
...
}
///| Shutdown a socket.
/// Returns 0 on success, -1 on error.
fn socket_shutdown_internal(
sockfd : RawFd,
how : Shutdown
) -> Unit raise NetError {
...
}
///| Set socket options.
/// Returns 0 on success, -1 on error.
fn socket_setsockopt_internal(
sockfd : RawFd,
level : Int,
optname : Int,
optval : Int
) -> Unit raise NetError {
...
}
///|
fn[S : ToSocketAddrs] socket_bind_internal(
sockfd : RawFd,
addr : S
) -> Unit raise NetError {
...
}
///|
fn socket_listen_internal(sockfd : RawFd, backlog : Int) -> Unit raise NetError {
...
}
///|
fn socket_accept_internal(sockfd : RawFd) -> (RawFd, SocketAddr) raise NetError {
...
}
///|
fn[S : ToSocketAddrs] socket_connect_internal(
sockfd : RawFd,
addr : S
) -> Unit raise NetError {
...
}
///|
fn socket_send_internal(
sockfd : RawFd,
data : FixedArray[Byte],
len : Int,
flags : Int
) -> Int raise NetError {
...
}
///|
fn socket_recv_internal(
sockfd : RawFd,
buf : FixedArray[Byte],
len : Int,
flags : Int
) -> Int raise NetError {
...
}
///|
fn get_net_error_message() -> String {
...
}