UV module

UV module

The uv module contains C++ wrappers for libuv.

uv

The uv module contains C++ wrappers for libuv.

Classes

NameDescription
HandleWrapper class for managing uv_handle_t variants.
ScopedLoopRAII wrapper for a libuv event loop. Automatically closes and deletes the loop on destruction.
HandleStorageExtra storage placed around a raw libuv handle for close-time cleanup hooks.
ContextShared libuv handle context.
BasicEventDefault request callback event carrying a libuv status code.
RequestWrapper class for managing uv_req_t variants.
ConnectReqAsynchronous connection request for TCP sockets and named pipes.
GetAddrInfoEventCallback event delivered when a [GetAddrInfoReq](icy-uv-GetAddrInfoReq.html#getaddrinforeq) resolves.
GetAddrInfoReqDNS resolver request to get the IP address of a hostname.

Typedefs

ReturnNameDescription
uv_loop_tLoopAlias for a libuv event loop instance.

Loop

uv_loop_t Loop()

Alias for a libuv event loop instance.

Functions

ReturnNameDescription
Loop *defaultLoop inlineReturns the process-wide default libuv event loop.
voidrunLoop inlineRuns the given event loop using the specified run mode. Blocks until the loop exits (when using UV_RUN_DEFAULT).
voidstopLoop inlineStops the given event loop, causing uv_run to return after the current iteration.
Loop *createLoop inlineAllocates and initializes a new libuv event loop. The caller is responsible for closing and deleting the returned loop.
boolcloseLoop inlineCloses the given event loop, releasing internal resources. All handles must be closed before calling this.
HandleStorage< T > *handleStorage inlineReturns the extended storage wrapper that owns handle.
voidsetHandleCloseCleanup inlineRegisters a cleanup callback that runs when handle finally closes.
voidclearHandleCloseCleanup inlineClears any pending close-time cleanup callback registered on handle.
autowithHandleContext inlineWraps callback so it only runs while the owning handle is still alive. Captures the intrusive [Context](icy-uv-Context.html#context-2) token, rehydrates the typed owner on entry, and suppresses invocation if the handle has already been deleted.
T &createRequest inlineAllocate a heap-owned [Request](icy-uv-Request.html#request-2) of type T and attach callback to it.
T &createRetainedRequest inlineAllocate a heap-owned [Request](icy-uv-Request.html#request-2) of type T whose callback retains additional state until completion.

defaultLoop

inline

inline Loop * defaultLoop()

Returns the process-wide default libuv event loop.

Returns

Pointer to the default uv_loop_t.


runLoop

inline

inline void runLoop(Loop * loop, uv_run_mode mode) = default

Runs the given event loop using the specified run mode. Blocks until the loop exits (when using UV_RUN_DEFAULT).

Parameters

  • loop Event loop to run. Defaults to the default loop.

  • mode libuv run mode: UV_RUN_DEFAULT, UV_RUN_ONCE, or UV_RUN_NOWAIT.


stopLoop

inline

inline void stopLoop(Loop * loop) = default

Stops the given event loop, causing uv_run to return after the current iteration.

Parameters

  • loop Event loop to stop. Defaults to the default loop.

createLoop

inline

inline Loop * createLoop()

Allocates and initializes a new libuv event loop. The caller is responsible for closing and deleting the returned loop.

Returns

Pointer to a newly initialized uv_loop_t.


closeLoop

inline

inline bool closeLoop(Loop * loop)

Closes the given event loop, releasing internal resources. All handles must be closed before calling this.

Parameters

  • loop Event loop to close.

Returns

True on success, false if the loop still has active handles.


handleStorage

inline

template<typename T> inline HandleStorage< T > * handleStorage(T * handle)

Returns the extended storage wrapper that owns handle.

Parameters

  • handle Raw libuv handle pointer previously allocated by [Context](icy-uv-Context.html#context-2)<T>.

setHandleCloseCleanup

inline

template<typename T> inline void setHandleCloseCleanup(T * handle, void * data, void(*)(void *) cleanup)

Registers a cleanup callback that runs when handle finally closes.

Parameters

  • handle Raw libuv handle pointer.

  • data User data passed back to cleanup.

  • cleanup Function invoked exactly once when the handle storage is released.


clearHandleCloseCleanup

inline

template<typename T> inline void clearHandleCloseCleanup(T * handle)

Clears any pending close-time cleanup callback registered on handle.

Parameters

  • handle Raw libuv handle pointer.

withHandleContext

inline

template<typename Owner, typename Callback> inline auto withHandleContext(Owner & owner, Callback && callback)

Wraps callback so it only runs while the owning handle is still alive. Captures the intrusive [Context](icy-uv-Context.html#context-2) token, rehydrates the typed owner on entry, and suppresses invocation if the handle has already been deleted.

Parameters

  • owner Owning handle instance.

  • callback Callable that receives Owner& followed by the libuv callback args.


createRequest

inline

template<typename T> inline T & createRequest(std::function< void(const typename T::Event &)> callback)

Allocate a heap-owned [Request](icy-uv-Request.html#request-2) of type T and attach callback to it.

The returned reference is valid until the request's defaultCallback fires and deletes the object.

Parameters

  • T A specialization of [Request](icy-uv-Request.html#request-2).

Parameters

  • callback Completion handler; receives a T::Event on completion.

Returns

Reference to the newly allocated request.


createRetainedRequest

inline

template<typename T, typename Retained, typename Callback> inline T & createRetainedRequest(Retained && retained, Callback && callback)

Allocate a heap-owned [Request](icy-uv-Request.html#request-2) of type T whose callback retains additional state until completion.

This is the standard way to bind request completion to handle lifetime or other retained context without hand-rolling per-call capture logic.

Parameters

  • T A specialization of [Request](icy-uv-Request.html#request-2).

  • Retained Retained object type copied or moved into the callback.

  • Callback Callable invoked as callback(retained, event).

Parameters

  • retained Extra state to keep alive until the request completes.

  • callback Completion handler receiving the retained state and event.

Returns

Reference to the newly allocated request.