# `ExUtcp.Transports.TcpUdp.PoolBehaviour`
[🔗](https://github.com/universal-tool-calling-protocol/elixir-utcp/blob/main/lib/ex_utcp/transports/tcp_udp/pool_behaviour.ex#L1)

Behaviour for TCP/UDP connection pools to enable mocking in tests.

# `close_all_connections`

```elixir
@callback close_all_connections(pool_pid :: pid()) :: :ok | {:error, term()}
```

# `close_connection`

```elixir
@callback close_connection(pool_pid :: pid(), conn_pid :: pid()) :: :ok | {:error, term()}
```

# `get_connection`

```elixir
@callback get_connection(pool_pid :: pid(), provider :: map()) ::
  {:ok, pid()} | {:error, term()}
```

# `start_link`

```elixir
@callback start_link(opts :: keyword()) :: {:ok, pid()} | {:error, term()}
```

# `stats`

```elixir
@callback stats(pool_pid :: pid()) :: map()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
