# ScopedLoop

<a id="scopedloop"></a>

# ScopedLoop

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

struct ScopedLoop
```

[Defined in src/base/include/icy/loop.h:77](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L77)

RAII wrapper for a libuv event loop. Automatically closes and deletes the loop on destruction.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`Loop`](https://auscaster.com/icey/docs/api-reference/uv.md#loop-1) * | [`loop`](#loop-2)  |  |

---

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

### loop

```cpp
Loop * loop
```

Type: [`Loop`](https://auscaster.com/icey/docs/api-reference/uv.md#loop-1) *

[Defined in src/base/include/icy/loop.h:79](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L79)

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`ScopedLoop`](#scopedloop-1) `inline` |  |
|  | [`~ScopedLoop`](#scopedloop-2) `inline` |  |
|  | [`operator Loop *`](#operatorloop) `const` `inline` | Implicit conversion to `Loop*` for use with libuv APIs. |
| [`Loop`](https://auscaster.com/icey/docs/api-reference/uv.md#loop-1) * | [`get`](#get-14) `const` `inline` | Returns the raw event loop pointer. |
|  | [`ScopedLoop`](#scopedloop-3)  | Deleted constructor. |
| [`ScopedLoop`](#scopedloop) & | [`operator=`](#operator-169)  | Deleted assignment operator. |
|  | [`ScopedLoop`](#scopedloop-4)  | Deleted constructor. |
| [`ScopedLoop`](#scopedloop) & | [`operator=`](#operator-170)  | Deleted assignment operator. |

---

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

### ScopedLoop

`inline`

```cpp
inline ScopedLoop()
```

[Defined in src/base/include/icy/loop.h:81](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L81)

---

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

### ~ScopedLoop

`inline`

```cpp
inline ~ScopedLoop()
```

[Defined in src/base/include/icy/loop.h:86](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L86)

---

<a id="operatorloop"></a>

### operator Loop *

`const` `inline`

```cpp
inline operator Loop *() const
```

[Defined in src/base/include/icy/loop.h:95](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L95)

Implicit conversion to `Loop*` for use with libuv APIs.

---

<a id="get-14"></a>

### get

`const` `inline`

```cpp
inline Loop * get() const
```

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

Returns the raw event loop pointer. 
#### Returns
Pointer to the underlying `uv_loop_t`.

---

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

### ScopedLoop

```cpp
ScopedLoop(const ScopedLoop &) = delete
```

[Defined in src/base/include/icy/loop.h:101](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L101)

Deleted constructor.

---

<a id="operator-169"></a>

### operator=

```cpp
ScopedLoop & operator=(const ScopedLoop &) = delete
```

[Defined in src/base/include/icy/loop.h:102](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L102)

Deleted assignment operator.

---

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

### ScopedLoop

```cpp
ScopedLoop(ScopedLoop &&) = delete
```

[Defined in src/base/include/icy/loop.h:103](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L103)

Deleted constructor.

---

<a id="operator-170"></a>

### operator=

```cpp
ScopedLoop & operator=(ScopedLoop &&) = delete
```

[Defined in src/base/include/icy/loop.h:104](https://github.com/auscaster/icey/blob/main/src/base/include/icy/loop.h#L104)

Deleted assignment operator.
