diff options
Diffstat (limited to 'meta/3rd/luv/library/uv_udp_t.lua')
-rw-r--r-- | meta/3rd/luv/library/uv_udp_t.lua | 175 |
1 files changed, 175 insertions, 0 deletions
diff --git a/meta/3rd/luv/library/uv_udp_t.lua b/meta/3rd/luv/library/uv_udp_t.lua new file mode 100644 index 00000000..a2dfd676 --- /dev/null +++ b/meta/3rd/luv/library/uv_udp_t.lua @@ -0,0 +1,175 @@ +---@meta + +--- UDP handles encapsulate UDP communication for both clients and servers. +--- +---@class uv.uv_udp_t : uv.uv_handle_t +local udp + +--- Bind the UDP handle to an IP address and port. Any `flags` are set with a table +--- with fields `reuseaddr` or `ipv6only` equal to `true` or `false`. +--- +---@param host string +---@param port integer +---@param flags? uv.udp_bind.flags +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:bind(host, port, flags) end + + +--- Associate the UDP handle to a remote address and port, so every message sent by +--- this handle is automatically sent to that destination. +-- +--- Calling this function with a NULL addr disconnects the handle. Trying to call `udp:connect()` on an already connected handle will result in an `EISCONN` error. Trying to disconnect a handle that is not connected will return an `ENOTCONN` error. +--- +---@param host string +---@param port integer +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:connect(host, port) end + +--- Returns the handle's send queue count. +--- +---@return integer count +function udp:get_send_queue_count() end + +--- Returns the handle's send queue size. +--- +---@return integer size +function udp:get_send_queue_size() end + +--- Get the remote IP and port of the UDP handle on connected UDP handles. +--- +---@return uv.udp.sockname|nil peername +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:getpeername() end + +--- Get the local IP and port of the UDP handle. +--- +---@return uv.udp.sockname|nil sockname +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:getsockname() end + +--- Opens an existing file descriptor or Windows SOCKET as a UDP handle. +--- +--- Unix only: The only requirement of the sock argument is that it follows the +--- datagram contract (works in unconnected mode, supports sendmsg()/recvmsg(), +--- etc). In other words, other datagram-type sockets like raw sockets or netlink +--- sockets can also be passed to this function. +--- +--- The file descriptor is set to non-blocking mode. +--- +--- Note: The passed file descriptor or SOCKET is not checked for its type, but +--- it's required that it represents a valid datagram socket. +--- +---@param fd integer +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:open(fd) end + +--- Prepare for receiving data. +--- +--- If the socket has not previously been bound with `udp:bind()` it is bound to `0.0.0.0` (the "all interfaces" IPv4 address) and a random port number. +--- +---@param callback uv.udp_recv_start.callback +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:recv_start(callback) end + +--- Stop listening for incoming datagrams. +--- +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:recv_stop() end + +--- Send data over the UDP socket. +--- +--- If the socket has not previously been bound with `udp:bind()` it will be bound to `0.0.0.0` (the "all interfaces" IPv4 address) and a random port number. +--- +---@param data uv.buffer +---@param host string +---@param port integer +---@param callback uv.udp_send.callback +---@return uv.uv_udp_send_t|nil bytes +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:send(data, host, port, callback) end + +--- Set broadcast on or off. +--- +---@param on boolean +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_broadcast(on) end + +--- Set membership for a multicast address. +--- +---@param multicast_addr string # multicast address to set membership for +---@param interface_addr string # interface address +---@param membership "leave"|"join" # membership intent +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_membership(multicast_addr, interface_addr, membership) end + +--- Set the multicast interface to send or receive data on. +--- +---@param interface_addr string +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_multicast_interface(interface_addr) end + +--- Set IP multicast loop flag. Makes multicast packets loop back to local +--- sockets. +--- +---@param on boolean +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_multicast_loop(on) end + +--- Set the multicast ttl. +--- +---@param ttl integer # an integer 1 through 255 +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_multicast_ttl(ttl) end + +--- Set membership for a source-specific multicast group. +--- +---@param multicast_addr string # multicast address to set membership for +---@param interface_addr? string # interface address +---@param source_addr string # source address +---@param membership "leave"|"join" # membership intent +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_source_membership(multicast_addr, interface_addr, source_addr, membership) end + +--- Set the time to live. +--- +---@param ttl integer # integer 1 through 255 +---@return 0|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:set_ttl(ttl) end + +--- Same as `udp:send()`, but won't queue a send request if it can't be +--- completed immediately. +--- +---@param data uv.buffer +---@param host string +---@param port integer +---@return integer|nil success +---@return uv.error.message|nil err +---@return uv.error.name|nil err_name +function udp:try_send(data, host, port) end
\ No newline at end of file |