# HandleStorage

<a id="handlestorage-1"></a>

# HandleStorage

```cpp
#include <icy/handle.h>

template<typename T>
struct HandleStorage
```

[Defined in src/base/include/icy/handle.h:42](https://github.com/auscaster/icey/blob/main/src/base/include/icy/handle.h#L42)

Extra storage placed around a raw `libuv` handle for close-time cleanup hooks.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `T` | [`handle`](#handle-4)  | Embedded raw `libuv` handle object. |
| `void *` | [`closeData`](#closedata)  | Opaque cleanup payload invoked on close. |
| `void(*` | [`closeCleanup`](#closecleanup)  | Cleanup function for `closeData`. |

---

<a id="handle-4"></a>

### handle

```cpp
T handle {}
```

[Defined in src/base/include/icy/handle.h:44](https://github.com/auscaster/icey/blob/main/src/base/include/icy/handle.h#L44)

Embedded raw `libuv` handle object.

---

<a id="closedata"></a>

### closeData

```cpp
void * closeData = nullptr
```

[Defined in src/base/include/icy/handle.h:45](https://github.com/auscaster/icey/blob/main/src/base/include/icy/handle.h#L45)

Opaque cleanup payload invoked on close.

---

<a id="closecleanup"></a>

### closeCleanup

```cpp
void(* closeCleanup)(void *)
```

[Defined in src/base/include/icy/handle.h:46](https://github.com/auscaster/icey/blob/main/src/base/include/icy/handle.h#L46)

Cleanup function for `closeData`.
