summaryrefslogtreecommitdiff
path: root/meta/3rd/luv/library/uv_udp_t.lua
diff options
context:
space:
mode:
Diffstat (limited to 'meta/3rd/luv/library/uv_udp_t.lua')
-rw-r--r--meta/3rd/luv/library/uv_udp_t.lua175
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