# PacketAdapterReference

<a id="packetadapterreference"></a>

# PacketAdapterReference

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

struct PacketAdapterReference
```

[Defined in src/base/include/icy/packetstream.h:150](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L150)

Provides a reference to a [PacketStreamAdapter](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) with optional ownership.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) * | [`ptr`](#ptr)  |  |
| `std::shared_ptr< void >` | [`_prevent_deletion`](#_prevent_deletion)  |  |
| `int` | [`order`](#order-2)  |  |
| `bool` | [`syncState`](#syncstate)  |  |

---

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

### ptr

```cpp
PacketStreamAdapter * ptr
```

Type: [`PacketStreamAdapter`](https://auscaster.com/icey/docs/api-reference/icy-PacketStreamAdapter.md#packetstreamadapter) *

[Defined in src/base/include/icy/packetstream.h:154](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L154)

---

<a id="_prevent_deletion"></a>

### _prevent_deletion

```cpp
std::shared_ptr< void > _prevent_deletion
```

[Defined in src/base/include/icy/packetstream.h:155](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L155)

---

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

### order

```cpp
int order
```

[Defined in src/base/include/icy/packetstream.h:156](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L156)

---

<a id="syncstate"></a>

### syncState

```cpp
bool syncState
```

[Defined in src/base/include/icy/packetstream.h:157](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L157)

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`PacketAdapterReference`](#packetadapterreference-1) `inline` | Construct with raw pointer (non-owning). |
|  | [`PacketAdapterReference`](#packetadapterreference-2) `inline` | Construct with shared_ptr ownership. |

---

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

### PacketAdapterReference

`inline`

```cpp
inline PacketAdapterReference(PacketStreamAdapter * ptr = nullptr, int order = 0, bool syncState = false)
```

[Defined in src/base/include/icy/packetstream.h:160](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L160)

Construct with raw pointer (non-owning).

---

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

### PacketAdapterReference

`inline`

```cpp
template<class C> inline PacketAdapterReference(std::shared_ptr< C > owned, int order = 0, bool syncState = false)
```

[Defined in src/base/include/icy/packetstream.h:170](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L170)

Construct with shared_ptr ownership.

## Public Static Methods

| Return | Name | Description |
|--------|------|-------------|
| `bool` | [`compareOrder`](#compareorder) `static` `inline` | Comparator for sorting references by ascending order value. |

---

<a id="compareorder"></a>

### compareOrder

`static` `inline`

```cpp
static inline bool compareOrder(const PacketAdapterReference::Ptr & l, const PacketAdapterReference::Ptr & r)
```

[Defined in src/base/include/icy/packetstream.h:183](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L183)

Comparator for sorting references by ascending order value. 
#### Returns
true if `l` should appear before `r` in the processor chain.

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `l` | const [`PacketAdapterReference::Ptr`](#ptr-1) & | Left-hand reference. |
| `r` | const [`PacketAdapterReference::Ptr`](#ptr-1) & | Right-hand reference. |

## Public Types

| Name | Description |
|------|-------------|
| [`Ptr`](#ptr-1)  |  |

---

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

### Ptr

```cpp
using Ptr = std::shared_ptr< PacketAdapterReference >
```

Type: std::shared_ptr< [`PacketAdapterReference`](#packetadapterreference) >

[Defined in src/base/include/icy/packetstream.h:152](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packetstream.h#L152)
