# Context

<a id="context-2"></a>

# Context

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

template<typename T>
struct Context
```

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

> **Inherits:** [`RefCounted< Context< T > >`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted)

Shared `libuv` handle context.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`handle`](#handle-5) | `variable` | Declared here |
| [`storage`](#storage) | `variable` | Declared here |
| [`ptr`](#ptr-8) | `variable` | Declared here |
| [`initialized`](#initialized) | `variable` | Declared here |
| [`deleted`](#deleted) | `variable` | Declared here |
| [`Context`](#context-3) | `function` | Declared here |
| [`owner`](#owner) | `function` | Declared here |
| [`~Context`](#context-4) | `function` | Declared here |
| [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-1) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-2) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#operator-78) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`addRef`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#addref) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`releaseRef`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#releaseref) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`refCount`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcount) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`~RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-3) | `function` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |
| [`_refCount`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#_refcount) | `variable` | Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted) |

## Inherited from [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted)

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-1)  | Defaulted constructor. |
| `function` | [`RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-2) `inline` `noexcept` |  |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#operator-78) `inline` `noexcept` |  |
| `function` | [`addRef`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#addref) `const` `inline` `noexcept` | Increments the reference count. Called by [IntrusivePtr](https://auscaster.com/icey/docs/api-reference/icy-IntrusivePtr.md#intrusiveptr) on acquisition. |
| `function` | [`releaseRef`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#releaseref) `const` `inline` `noexcept` | Decrements the reference count. |
| `function` | [`refCount`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcount) `const` `inline` `noexcept` | Returns the current reference count. |
| `function` | [`~RefCounted`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#refcounted-3)  | Defaulted destructor. |
| `variable` | [`_refCount`](https://auscaster.com/icey/docs/api-reference/icy-RefCounted.md#_refcount)  |  |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`Handle`](https://auscaster.com/icey/docs/api-reference/icy-uv-Handle.md#handle-6)< T > * | [`handle`](#handle-5)  |  |
| [`HandleStorage`](https://auscaster.com/icey/docs/api-reference/icy-uv-HandleStorage.md#handlestorage-1)< T > * | [`storage`](#storage)  |  |
| `T *` | [`ptr`](#ptr-8)  |  |
| `bool` | [`initialized`](#initialized)  |  |
| `bool` | [`deleted`](#deleted)  |  |

---

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

### handle

```cpp
Handle< T > * handle = nullptr
```

Type: [`Handle`](https://auscaster.com/icey/docs/api-reference/icy-uv-Handle.md#handle-6)< T > *

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

---

<a id="storage"></a>

### storage

```cpp
HandleStorage< T > * storage = new HandleStorage<T>
```

Type: [`HandleStorage`](https://auscaster.com/icey/docs/api-reference/icy-uv-HandleStorage.md#handlestorage-1)< T > *

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

---

<a id="ptr-8"></a>

### ptr

```cpp
T * ptr = &storage->handle
```

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

---

<a id="initialized"></a>

### initialized

```cpp
bool initialized = false
```

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

---

<a id="deleted"></a>

### deleted

```cpp
bool deleted = false
```

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

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Context`](#context-3) `inline` |  |
| `Owner *` | [`owner`](#owner) `const` `inline` |  |
|  | [`~Context`](#context-4) `inline` |  |

---

<a id="context-3"></a>

### Context

`inline`

```cpp
inline Context(Handle< T > * h)
```

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

---

<a id="owner"></a>

### owner

`const` `inline`

```cpp
template<typename Owner> inline Owner * owner() const
```

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

---

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

### ~Context

`inline`

```cpp
inline ~Context()
```

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