# StreamManager

<a id="streammanager"></a>

# StreamManager

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

class StreamManager
```

[Defined in src/base/include/icy/streammanager.h:23](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L23)

> **Inherits:** [`string, PacketStream >`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore)

Manages a named collection of [PacketStream](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md#packetstream) instances with lifecycle callbacks.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`StreamManager`](#streammanager-1) | `function` | Declared here |
| [`~StreamManager`](#streammanager-2) | `function` | Declared here |
| [`addStream`](#addstream) | `function` | Declared here |
| [`addStream`](#addstream-1) | `function` | Declared here |
| [`closeStream`](#closestream) | `function` | Declared here |
| [`closeAll`](#closeall) | `function` | Declared here |
| [`getStream`](#getstream) | `function` | Declared here |
| [`getDefaultStream`](#getdefaultstream) | `function` | Declared here |
| [`print`](#print-1) | `function` | Declared here |
| [`onAdd`](#onadd-1) | `function` | Declared here |
| [`onRemove`](#onremove-1) | `function` | Declared here |
| [`onStreamStateChange`](#onstreamstatechange-2) | `function` | Declared here |
| [`className`](#classname-3) | `function` | Declared here |
| [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-1) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`~KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-2) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-3) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#operator-43) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-4) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#operator-44) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`get`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#get-3) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`add`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#add-1) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`tryAdd`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#tryadd) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`put`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#put-3) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`erase`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#erase) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`contains`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#contains) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`empty`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#empty) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`size`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#size-2) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`clear`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#clear-1) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map-1) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`begin`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#begin-3) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`end`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#end) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`begin`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#begin-4) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`end`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#end-1) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`_map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#_map) | `variable` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`onAdd`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onadd) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`onRemove`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onremove) | `function` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |
| [`Map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map-2) | `typedef` | Inherited from [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore) |

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

| Kind | Name | Description |
|------|------|-------------|
| `function` | [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-1)  | Defaulted constructor. |
| `function` | [`~KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-2) `virtual` `inline` |  |
| `function` | [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-3)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#operator-43)  | Deleted assignment operator. |
| `function` | [`KeyedStore`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#keyedstore-4)  | Defaulted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#operator-44)  | Defaulted assignment operator. |
| `function` | [`get`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#get-3) `const` `inline` | Returns the item for `key`, or nullptr if not found. |
| `function` | [`add`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#add-1) `inline` | Inserts a uniquely owned item. Returns a reference to the stored item. |
| `function` | [`tryAdd`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#tryadd) `inline` | Inserts if absent; returns false on duplicate (never throws). |
| `function` | [`put`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#put-3) `inline` | Inserts or replaces the item under `key`. |
| `function` | [`erase`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#erase) `inline` | Removes and destroys the item under `key`. |
| `function` | [`contains`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#contains) `const` `inline` |  |
| `function` | [`empty`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#empty) `const` `inline` |  |
| `function` | [`size`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#size-2) `const` `inline` |  |
| `function` | [`clear`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#clear-1) `inline` |  |
| `function` | [`map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) `inline` | Direct map access for iteration. |
| `function` | [`map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map-1) `const` `inline` |  |
| `function` | [`begin`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#begin-3) `inline` |  |
| `function` | [`end`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#end) `inline` |  |
| `function` | [`begin`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#begin-4) `const` `inline` |  |
| `function` | [`end`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#end-1) `const` `inline` |  |
| `variable` | [`_map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#_map)  |  |
| `function` | [`onAdd`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onadd) `virtual` `inline` | Override for lifecycle reactions. |
| `function` | [`onRemove`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onremove) `virtual` `inline` |  |
| `typedef` | [`Map`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map-2)  |  |

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`StreamManager`](#streammanager-1)  |  |
|  | [`~StreamManager`](#streammanager-2)  |  |
| [`bool`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`addStream`](#addstream)  |  |
| [`bool`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`addStream`](#addstream-1)  |  |
| [`bool`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`closeStream`](#closestream)  |  |
| [`void`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`closeAll`](#closeall)  |  |
| [`PacketStream`](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md#packetstream) * | [`getStream`](#getstream) `const` |  |
| [`PacketStream`](https://auscaster.com/icey/docs/api-reference/icy-PacketStream.md#packetstream) * | [`getDefaultStream`](#getdefaultstream) `const` |  |
| [`void`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`print`](#print-1) `const` |  |

---

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

### StreamManager

```cpp
StreamManager()
```

[Defined in src/base/include/icy/streammanager.h:26](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L26)

---

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

### ~StreamManager

```cpp
~StreamManager()
```

[Defined in src/base/include/icy/streammanager.h:27](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L27)

---

<a id="addstream"></a>

### addStream

```cpp
bool addStream(PacketStream * stream, bool whiny = true)
```

[Defined in src/base/include/icy/streammanager.h:29](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L29)

---

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

### addStream

```cpp
bool addStream(std::unique_ptr< PacketStream > stream, bool whiny = true)
```

[Defined in src/base/include/icy/streammanager.h:30](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L30)

---

<a id="closestream"></a>

### closeStream

```cpp
bool closeStream(const std::string & name, bool whiny = true)
```

[Defined in src/base/include/icy/streammanager.h:31](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L31)

---

<a id="closeall"></a>

### closeAll

```cpp
void closeAll()
```

[Defined in src/base/include/icy/streammanager.h:32](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L32)

---

<a id="getstream"></a>

### getStream

`const`

```cpp
PacketStream * getStream(const std::string & name, bool whiny = true) const
```

[Defined in src/base/include/icy/streammanager.h:34](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L34)

---

<a id="getdefaultstream"></a>

### getDefaultStream

`const`

```cpp
PacketStream * getDefaultStream() const
```

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

---

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

### print

`const`

```cpp
void print(std::ostream & os) const
```

[Defined in src/base/include/icy/streammanager.h:37](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L37)

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
| [`void`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`onAdd`](#onadd-1) `virtual` `override` | Override for lifecycle reactions. |
| [`void`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`onRemove`](#onremove-1) `virtual` `override` |  |
| [`void`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) | [`onStreamStateChange`](#onstreamstatechange-2)  |  |
| [`const`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map)[`char`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#map) * | [`className`](#classname-3) `virtual` `const` `inline` |  |

---

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

### onAdd

`virtual` `override`

```cpp
virtual void onAdd(const std::string &, PacketStream *) override
```

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

Override for lifecycle reactions.

#### Reimplements

- [`KeyedStore::onAdd`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onadd)

---

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

### onRemove

`virtual` `override`

```cpp
virtual void onRemove(const std::string &, PacketStream * stream) override
```

[Defined in src/base/include/icy/streammanager.h:41](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L41)

#### Reimplements

- [`KeyedStore::onRemove`](https://auscaster.com/icey/docs/api-reference/icy-KeyedStore.md#onremove)

---

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

### onStreamStateChange

```cpp
void onStreamStateChange(void * sender, PacketStreamState & state, constPacketStreamState &)
```

[Defined in src/base/include/icy/streammanager.h:43](https://github.com/auscaster/icey/blob/main/src/base/include/icy/streammanager.h#L43)

---

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

### className

`virtual` `const` `inline`

```cpp
virtual inline constchar * className() const
```

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