xash3d-fwgs
Version:
Xash3D-FWGS emscripten port
99 lines (98 loc) • 4.13 kB
TypeScript
import { Em } from "../generated/xash";
/**
* Interface for networking bindings used by the Xash3D WASM engine.
* Provides low-level socket and packet operations, mirroring POSIX-style APIs.
*/
export interface EmNet {
/**
* Initialize the networking layer with the active Emscripten instance.
* @param em - Emscripten runtime
*/
init(em: Em): void;
/**
* Receive a packet from a socket.
* @param fd - Socket file descriptor
* @param bufPtr - Pointer to buffer for received data
* @param bufLen - Maximum buffer length
* @param flags - Socket flags
* @param sockaddrPtr - Pointer to sockaddr structure
* @param socklenPtr - Pointer to length of sockaddr structure
* @returns Number of bytes received or error code
*/
recvfrom(fd: number, bufPtr: number, bufLen: number, flags: number, sockaddrPtr: number, socklenPtr: number): number;
/**
* Send a packet to a remote host.
* @param fd - Socket file descriptor
* @param bufPtr - Pointer to buffer with data
* @param bufLen - Length of data in buffer
* @param flags - Socket flags
* @param sockaddrPtr - Pointer to sockaddr structure
* @param socklenPtr - Size of sockaddr structure
* @returns Number of bytes sent or error code
*/
sendto(fd: number, bufPtr: number, bufLen: number, flags: number, sockaddrPtr: number, socklenPtr: number): number;
/**
* Send multiple packets in a single batch.
* @param fd - Socket file descriptor
* @param bufsPtr - Pointer to array of buffer pointers
* @param lensPtr - Pointer to array of buffer lengths
* @param count - Number of buffers
* @param flags - Socket flags
* @param sockaddrPtr - Pointer to sockaddr structure
* @param socklenPtr - Size of sockaddr structure
* @returns Total number of bytes sent or error code
*/
sendtoBatch(fd: number, bufsPtr: number, lensPtr: number, count: number, flags: number, sockaddrPtr: number, socklenPtr: number): number;
/**
* Create a new socket.
* @param family - Address family (e.g. AF_INET)
* @param type - Socket type (e.g. SOCK_DGRAM)
* @param protocol - Protocol number
* @returns Socket file descriptor or error code
*/
socket(family: number, type: number, protocol: number): number;
/**
* Resolve a hostname into an address.
* @param hostnamePtr - Pointer to hostname string
* @returns Pointer to hostent structure or error code
*/
gethostbyname(hostnamePtr: number): number;
/**
* Get the local hostname.
* @param namePtr - Pointer to buffer to receive hostname
* @param namelenPtr - Maximum length of buffer
* @returns 0 on success or error code
*/
gethostname(namePtr: number, namelenPtr: number): number;
/**
* Get the local address of a socket.
* @param fd - Socket file descriptor
* @param sockaddrPtr - Pointer to sockaddr structure
* @param socklenPtr - Size of sockaddr structure
* @returns 0 on success or error code
*/
getsockname(fd: number, sockaddrPtr: number, socklenPtr: number): number;
/**
* Bind a socket to a local address.
* @param fd - Socket file descriptor
* @param sockaddrPtr - Pointer to sockaddr structure
* @param socklenPtr - Size of sockaddr structure
* @returns 0 on success or error code
*/
bind(fd: number, sockaddrPtr: number, socklenPtr: number): number;
/**
* Close a socket.
* @param fd - Socket file descriptor
* @returns 0 on success or error code
*/
closesocket(fd: number): number;
/**
* Resolve a hostname or service into one or more addresses.
* @param hostnamePtr - Pointer to hostname string
* @param restrictPrt - Pointer to service string or null
* @param hintsPtr - Pointer to addrinfo hints structure
* @param addrinfoPtr - Pointer to addrinfo result structure
* @returns 0 on success or error code
*/
getaddrinfo(hostnamePtr: number, restrictPrt: number, hintsPtr: number, addrinfoPtr: number): number;
}