Source code for SDL3_net

from sdl3.SDL import * # type: ignore
from sdl3 import SDL_POINTER

import ctypes, typing

LP_NET_Address: typing.TypeAlias = SDL_POINTER[NET_Address]
LP_NET_DatagramSocket: typing.TypeAlias = SDL_POINTER[NET_DatagramSocket]
LP_NET_StreamSocket: typing.TypeAlias = SDL_POINTER[NET_StreamSocket]
LP_NET_Server: typing.TypeAlias = SDL_POINTER[NET_Server]
LP_LP_NET_Address: typing.TypeAlias = SDL_POINTER[SDL_POINTER[NET_Address]]
LP_c_void_p: typing.TypeAlias = SDL_POINTER[ctypes.c_void_p]
LP_c_int: typing.TypeAlias = SDL_POINTER[ctypes.c_int]
LP_LP_NET_Datagram: typing.TypeAlias = SDL_POINTER[SDL_POINTER[NET_Datagram]]
LP_NET_Datagram: typing.TypeAlias = SDL_POINTER[NET_Datagram]
LP_LP_NET_StreamSocket: typing.TypeAlias = SDL_POINTER[SDL_POINTER[NET_StreamSocket]]

[docs] def NET_Version() -> ctypes.c_int: """ This function gets the version of the dynamically linked SDL_net library. """
[docs] def NET_Init() -> ctypes.c_bool: """ Initialize the SDL_net library. """
[docs] def NET_Quit() -> None: """ Deinitialize the SDL_net library. """
[docs] def NET_ResolveHostname(host: ctypes.c_char_p) -> LP_NET_Address: """ Resolve a human-readable hostname. """
[docs] def NET_WaitUntilResolved(address: LP_NET_Address, timeout: ctypes.c_int32) -> NET_Status: """ Block until an address is resolved. """
[docs] def NET_GetAddressStatus(address: LP_NET_Address) -> NET_Status: """ Check if an address is resolved, without blocking. """
[docs] def NET_GetAddressString(address: LP_NET_Address) -> ctypes.c_char_p: """ Get a human-readable string from a resolved address. """
[docs] def NET_RefAddress(address: LP_NET_Address) -> LP_NET_Address: """ Add a reference to an NET_Address. """
[docs] def NET_UnrefAddress(address: LP_NET_Address) -> None: """ Drop a reference to an NET_Address. """
[docs] def NET_SimulateAddressResolutionLoss(percent_loss: ctypes.c_int) -> None: """ Enable simulated address resolution failures. """
[docs] def NET_CompareAddresses(a: LP_NET_Address, b: LP_NET_Address) -> ctypes.c_int: """ Compare two NET_Address objects. """
[docs] def NET_GetLocalAddresses(num_addresses: LP_c_int) -> LP_LP_NET_Address: """ Obtain a list of local addresses on the system. """
[docs] def NET_FreeLocalAddresses(addresses: LP_LP_NET_Address) -> None: """ Free the results from NET_GetLocalAddresses. """
[docs] def NET_CreateClient(address: LP_NET_Address, port: ctypes.c_uint16) -> LP_NET_StreamSocket: """ Begin connecting a socket as a client to a remote server. """
[docs] def NET_WaitUntilConnected(sock: LP_NET_StreamSocket, timeout: ctypes.c_int32) -> NET_Status: """ Block until a stream socket has connected to a server. """
[docs] def NET_CreateServer(addr: LP_NET_Address, port: ctypes.c_uint16) -> LP_NET_Server: """ Create a server, which listens for connections to accept. """
[docs] def NET_AcceptClient(server: LP_NET_Server, client_stream: LP_LP_NET_StreamSocket) -> ctypes.c_bool: """ Create a stream socket for the next pending client connection. """
[docs] def NET_DestroyServer(server: LP_NET_Server) -> None: """ Dispose of a previously-created server. """
[docs] def NET_GetStreamSocketAddress(sock: LP_NET_StreamSocket) -> LP_NET_Address: """ Get the remote address of a stream socket. """
[docs] def NET_GetConnectionStatus(sock: LP_NET_StreamSocket) -> NET_Status: """ Check if a stream socket is connected, without blocking. """
[docs] def NET_WriteToStreamSocket(sock: LP_NET_StreamSocket, buf: ctypes.c_void_p, buflen: ctypes.c_int) -> ctypes.c_bool: """ Send bytes over a stream socket to a remote system. """
[docs] def NET_GetStreamSocketPendingWrites(sock: LP_NET_StreamSocket) -> ctypes.c_int: """ Query bytes still pending transmission on a stream socket. """
[docs] def NET_WaitUntilStreamSocketDrained(sock: LP_NET_StreamSocket, timeout: ctypes.c_int32) -> ctypes.c_int: """ Block until all of a stream socket's pending data is sent. """
[docs] def NET_ReadFromStreamSocket(sock: LP_NET_StreamSocket, buf: ctypes.c_void_p, buflen: ctypes.c_int) -> ctypes.c_int: """ Receive bytes that a remote system sent to a stream socket. """
[docs] def NET_SimulateStreamPacketLoss(sock: LP_NET_StreamSocket, percent_loss: ctypes.c_int) -> None: """ Enable simulated stream socket failures. """
[docs] def NET_DestroyStreamSocket(sock: LP_NET_StreamSocket) -> None: """ Dispose of a previously-created stream socket. """
[docs] def NET_CreateDatagramSocket(addr: LP_NET_Address, port: ctypes.c_uint16) -> LP_NET_DatagramSocket: """ Create and bind a new datagram socket. """
[docs] def NET_SendDatagram(sock: LP_NET_DatagramSocket, address: LP_NET_Address, port: ctypes.c_uint16, buf: ctypes.c_void_p, buflen: ctypes.c_int) -> ctypes.c_bool: """ Send a new packet over a datagram socket to a remote system. """
[docs] def NET_ReceiveDatagram(sock: LP_NET_DatagramSocket, dgram: LP_LP_NET_Datagram) -> ctypes.c_bool: """ Receive a new packet that a remote system sent to a datagram socket. """
[docs] def NET_DestroyDatagram(dgram: LP_NET_Datagram) -> None: """ Dispose of a datagram packet previously received. """
[docs] def NET_SimulateDatagramPacketLoss(sock: LP_NET_DatagramSocket, percent_loss: ctypes.c_int) -> None: """ Enable simulated datagram socket failures. """
[docs] def NET_DestroyDatagramSocket(sock: LP_NET_DatagramSocket) -> None: """ Dispose of a previously-created datagram socket. """
[docs] def NET_WaitUntilInputAvailable(vsockets: LP_c_void_p, numsockets: ctypes.c_int, timeout: ctypes.c_int32) -> ctypes.c_int: """ Block on multiple sockets until at least one has data available. """