UV module
uv module contains C++ wrappers for libuv.The uv module contains C++ wrappers for libuv.
Classes
| Name | Description |
|---|---|
Handle | Wrapper class for managing uv_handle_t variants. |
ScopedLoop | RAII wrapper for a libuv event loop. Automatically closes and deletes the loop on destruction. |
HandleStorage | Extra storage placed around a raw libuv handle for close-time cleanup hooks. |
Context | Shared libuv handle context. |
BasicEvent | Default request callback event carrying a libuv status code. |
Request | Wrapper class for managing uv_req_t variants. |
ConnectReq | Asynchronous connection request for TCP sockets and named pipes. |
GetAddrInfoEvent | Callback event delivered when a GetAddrInfoReq resolves. |
GetAddrInfoReq | DNS resolver request to get the IP address of a hostname. |
Typedefs
| Return | Name | Description |
|---|---|---|
uv_loop_t | Loop | Alias for a libuv event loop instance. |
Loop
using Loop = uv_loop_tDefined in src/base/include/icy/loop.h:29
Alias for a libuv event loop instance.
Functions
| Return | Name | Description |
|---|---|---|
Loop * | defaultLoop inline | Returns the process-wide default libuv event loop. |
void | runLoop inline | Runs the given event loop using the specified run mode. Blocks until the loop exits (when using UV_RUN_DEFAULT). |
void | stopLoop inline | Stops the given event loop, causing uv_run to return after the current iteration. |
Loop * | createLoop inline | Allocates and initializes a new libuv event loop. The caller is responsible for closing and deleting the returned loop. |
bool | closeLoop inline | Closes the given event loop, releasing internal resources. All handles must be closed before calling this. |
HandleStorage< T > * | handleStorage inline | Returns the extended storage wrapper that owns handle. |
void | setHandleCloseCleanup inline | Registers a cleanup callback that runs when handle finally closes. |
void | clearHandleCloseCleanup inline | Clears any pending close-time cleanup callback registered on handle. |
auto | withHandleContext inline | Wraps callback so it only runs while the owning handle is still alive. Captures the intrusive Context token, rehydrates the typed owner on entry, and suppresses invocation if the handle has already been deleted. |
T & | createRequest inline | Allocate a heap-owned Request of type T and attach callback to it. |
T & | createRetainedRequest inline | Allocate a heap-owned Request of type T whose callback retains additional state until completion. |
defaultLoop
inline
inline Loop * defaultLoop()Defined in src/base/include/icy/loop.h:34
Returns the process-wide default libuv event loop.
Returns
Pointer to the default uv_loop_t.
runLoop
inline
inline void runLoop(Loop * loop = defaultLoop(), uv_run_mode mode = UV_RUN_DEFAULT) = defaultDefined in src/base/include/icy/loop.h:43
Runs the given event loop using the specified run mode. Blocks until the loop exits (when using UV_RUN_DEFAULT).
Parameters
| Parameter | Type | Description |
|---|---|---|
loop | Loop * | Event loop to run. Defaults to the default loop. |
mode | uv_run_mode | libuv run mode: UV_RUN_DEFAULT, UV_RUN_ONCE, or UV_RUN_NOWAIT. |
stopLoop
inline
inline void stopLoop(Loop * loop = defaultLoop()) = defaultDefined in src/base/include/icy/loop.h:50
Stops the given event loop, causing uv_run to return after the current iteration.
Parameters
| Parameter | Type | Description |
|---|---|---|
loop | Loop * | Event loop to stop. Defaults to the default loop. |
createLoop
inline
inline Loop * createLoop()Defined in src/base/include/icy/loop.h:58
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)Defined in src/base/include/icy/loop.h:69
Closes the given event loop, releasing internal resources. All handles must be closed before calling this.
Returns
True on success, false if the loop still has active handles.
Parameters
| Parameter | Type | Description |
|---|---|---|
loop | Loop * | Event loop to close. |
handleStorage
inline
template<typename T> inline HandleStorage< T > * handleStorage(T * handle)Defined in src/base/include/icy/handle.h:53
Returns the extended storage wrapper that owns handle.
Parameters
| Parameter | Type | Description |
|---|---|---|
handle | T * | Raw libuv handle pointer previously allocated by Context<T>. |
setHandleCloseCleanup
inline
template<typename T> inline void setHandleCloseCleanup(T * handle, void * data, void(*)(void *) cleanup)Defined in src/base/include/icy/handle.h:64
Registers a cleanup callback that runs when handle finally closes.
Parameters
| Parameter | Type | Description |
|---|---|---|
handle | T * | Raw libuv handle pointer. |
data | void * | User data passed back to cleanup. |
cleanup | void(*)(void *) | Function invoked exactly once when the handle storage is released. |
clearHandleCloseCleanup
inline
template<typename T> inline void clearHandleCloseCleanup(T * handle)Defined in src/base/include/icy/handle.h:75
Clears any pending close-time cleanup callback registered on handle.
Parameters
| Parameter | Type | Description |
|---|---|---|
handle | T * | Raw libuv handle pointer. |
withHandleContext
inline
template<typename Owner, typename Callback> inline auto withHandleContext(Owner & owner, Callback && callback)Defined in src/base/include/icy/handle.h:469
Wraps callback so it only runs while the owning handle is still alive. Captures the intrusive Context token, rehydrates the typed owner on entry, and suppresses invocation if the handle has already been deleted.
Parameters
| Parameter | Type | Description |
|---|---|---|
owner | Owner & | Owning handle instance. |
callback | 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)Defined in src/base/include/icy/request.h:114
Allocate a heap-owned Request of type T and attach callback to it.
The returned reference is valid until the request's defaultCallback fires and deletes the object.
Returns
Reference to the newly allocated request.
Parameters
| Parameter | Type | Description |
|---|---|---|
callback | std::function< void(const typename T::Event &)> | Completion handler; receives a T::Event on completion. |
createRetainedRequest
inline
template<typename T, typename Retained, typename Callback> inline T & createRetainedRequest(Retained && retained, Callback && callback)Defined in src/base/include/icy/request.h:135
Allocate a heap-owned Request 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.
Returns
Reference to the newly allocated request.
Parameters
| Parameter | Type | Description |
|---|---|---|
retained | Retained && | Extra state to keep alive until the request completes. |
callback | Callback && | Completion handler receiving the retained state and event. |
