# IPacketInfo

<a id="ipacketinfo"></a>

# IPacketInfo

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

struct IPacketInfo
```

[Defined in src/base/include/icy/packet.h:33](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packet.h#L33)

> **Subclassed by:** [`PacketInfo`](https://auscaster.com/icey/docs/api-reference/icy-net-PacketInfo.md#packetinfo)

An abstract interface for packet sources to provide extra information about packets.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`IPacketInfo`](#ipacketinfo-1)  | Defaulted constructor. |
|  | [`~IPacketInfo`](#ipacketinfo-2) `virtual` | Defaulted destructor. |
| std::unique_ptr< [`IPacketInfo`](#ipacketinfo) > | [`clone`](#clone-2) `virtual` `const` | Returns a heap-allocated deep copy of this info object. |

---

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

### IPacketInfo

```cpp
IPacketInfo() = default
```

[Defined in src/base/include/icy/packet.h:35](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packet.h#L35)

Defaulted constructor.

---

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

### ~IPacketInfo

`virtual`

```cpp
virtual ~IPacketInfo() = default
```

[Defined in src/base/include/icy/packet.h:36](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packet.h#L36)

Defaulted destructor.

---

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

### clone

`virtual` `const`

```cpp
virtual std::unique_ptr< IPacketInfo > clone() const
```

[Defined in src/base/include/icy/packet.h:40](https://github.com/auscaster/icey/blob/main/src/base/include/icy/packet.h#L40)

Returns a heap-allocated deep copy of this info object. 
#### Returns
Owning pointer to the cloned instance.

#### Reimplemented by

- [`PacketInfo::clone`](https://auscaster.com/icey/docs/api-reference/icy-net-PacketInfo.md#clone-9)
