# Server::PeerRegistry

<a id="peerregistry"></a>

# PeerRegistry

```cpp
#include <src/symple/src/server/detail.h>

class PeerRegistry
```

[Defined in src/symple/src/server/detail.h:30](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L30)

The server's connected and virtual peers, found by peer ID or by connection.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
| `void` | [`add`](#add-11)  |  |
| `void` | [`addVirtual`](#addvirtual)  |  |
| `void` | [`bind`](#bind-4)  |  |
| `void` | [`unbind`](#unbind)  |  |
| `void` | [`erase`](#erase-2)  |  |
| `void` | [`eraseVirtual`](#erasevirtual)  |  |
| `void` | [`clear`](#clear-12)  |  |
| [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) * | [`find`](#find-1)  |  |
| const [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) * | [`find`](#find-2) `const` |  |
| [`VirtualPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-VirtualPeer.md#virtualpeer) * | [`findVirtual`](#findvirtual)  |  |
| const [`VirtualPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-VirtualPeer.md#virtualpeer) * | [`findVirtual`](#findvirtual-1) `const` |  |
| [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) * | [`findByConnection`](#findbyconnection)  |  |
| const [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) * | [`findByConnection`](#findbyconnection-1) `const` |  |
| `size_t` | [`size`](#size-21) `const` |  |
| const std::unordered_map< std::string, std::unique_ptr< [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) > > & | [`peers`](#peers-1) `const` `inline` |  |

---

<a id="add-11"></a>

### add

```cpp
void add(std::string id, std::unique_ptr< ServerPeer > peer)
```

[Defined in src/symple/src/server/detail.h:33](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L33)

---

<a id="addvirtual"></a>

### addVirtual

```cpp
void addVirtual(std::string id, VirtualPeer peer)
```

[Defined in src/symple/src/server/detail.h:34](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L34)

---

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

### bind

```cpp
void bind(http::ServerConnection & conn, const std::string & id)
```

[Defined in src/symple/src/server/detail.h:35](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L35)

---

<a id="unbind"></a>

### unbind

```cpp
void unbind(http::ServerConnection & conn)
```

[Defined in src/symple/src/server/detail.h:36](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L36)

---

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

### erase

```cpp
void erase(const std::string & id)
```

[Defined in src/symple/src/server/detail.h:37](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L37)

---

<a id="erasevirtual"></a>

### eraseVirtual

```cpp
void eraseVirtual(const std::string & id)
```

[Defined in src/symple/src/server/detail.h:38](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L38)

---

<a id="clear-12"></a>

### clear

```cpp
void clear()
```

[Defined in src/symple/src/server/detail.h:39](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L39)

---

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

### find

```cpp
ServerPeer * find(const std::string & id)
```

[Defined in src/symple/src/server/detail.h:41](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L41)

---

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

### find

`const`

```cpp
const ServerPeer * find(const std::string & id) const
```

[Defined in src/symple/src/server/detail.h:42](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L42)

---

<a id="findvirtual"></a>

### findVirtual

```cpp
VirtualPeer * findVirtual(const std::string & id)
```

[Defined in src/symple/src/server/detail.h:43](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L43)

---

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

### findVirtual

`const`

```cpp
const VirtualPeer * findVirtual(const std::string & id) const
```

[Defined in src/symple/src/server/detail.h:44](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L44)

---

<a id="findbyconnection"></a>

### findByConnection

```cpp
ServerPeer * findByConnection(http::ServerConnection & conn)
```

[Defined in src/symple/src/server/detail.h:45](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L45)

---

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

### findByConnection

`const`

```cpp
const ServerPeer * findByConnection(http::ServerConnection & conn) const
```

[Defined in src/symple/src/server/detail.h:46](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L46)

---

<a id="size-21"></a>

### size

`const`

```cpp
size_t size() const
```

[Defined in src/symple/src/server/detail.h:47](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L47)

---

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

### peers

`const` `inline`

```cpp
inline const std::unordered_map< std::string, std::unique_ptr< ServerPeer > > & peers() const
```

[Defined in src/symple/src/server/detail.h:49](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L49)

## Private Attributes

| Return | Name | Description |
|--------|------|-------------|
| std::unordered_map< std::string, std::unique_ptr< [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) > > | [`_peers`](#_peers)  |  |
| std::unordered_map< std::string, [`VirtualPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-VirtualPeer.md#virtualpeer) > | [`_virtualPeers`](#_virtualpeers)  |  |
| std::unordered_map< [`http::ServerConnection`](https://auscaster.com/icey/docs/api-reference/icy-http-ServerConnection.md#serverconnection-1) *, std::string > | [`_connToPeer`](#_conntopeer)  |  |

---

<a id="_peers"></a>

### _peers

```cpp
std::unordered_map< std::string, std::unique_ptr< ServerPeer > > _peers
```

Type: std::unordered_map< std::string, std::unique_ptr< [`ServerPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-ServerPeer.md#serverpeer) > >

[Defined in src/symple/src/server/detail.h:55](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L55)

---

<a id="_virtualpeers"></a>

### _virtualPeers

```cpp
std::unordered_map< std::string, VirtualPeer > _virtualPeers
```

Type: std::unordered_map< std::string, [`VirtualPeer`](https://auscaster.com/icey/docs/api-reference/icy-smpl-Server-VirtualPeer.md#virtualpeer) >

[Defined in src/symple/src/server/detail.h:56](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L56)

---

<a id="_conntopeer"></a>

### _connToPeer

```cpp
std::unordered_map< http::ServerConnection *, std::string > _connToPeer
```

Type: std::unordered_map< [`http::ServerConnection`](https://auscaster.com/icey/docs/api-reference/icy-http-ServerConnection.md#serverconnection-1) *, std::string >

[Defined in src/symple/src/server/detail.h:57](https://github.com/auscaster/icey/blob/main/src/symple/src/server/detail.h#L57)
