# fidl::SharedClient

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1aca50709cb9dd8c1a107eb94c72cb6ef2(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, std::unique_ptr< https://fuchsia.dev/reference/cpp/other/singletonfidl/async-event-handler#singletonfidl_1_1_async_event_handler > event_handler)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1ac125ff4a11de03a6d4f271dc47f2db03(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, https://fuchsia.dev/reference/cpp/other/singletonfidl/async-event-handler#singletonfidl_1_1_async_event_handler *event_handler, https://fuchsia.dev/reference/cpp/class/fidl/any-teardown-observer#classfidl_1_1_any_teardown_observer teardown_observer)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a91e424ec10c9f605f26b6f3b2fbdb1ba(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, https://fuchsia.dev/reference/cpp/class/fidl/any-teardown-observer#classfidl_1_1_any_teardown_observer teardown_observer)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1ae4b6f5a51030620f304e2000bf6155a6()` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a3bfc6bd000b0d5f5b5cf8d75b0509cd6(https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client && other)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a7b73e4af4a4cf6823f3904b59368af28()` ||

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1acecb4ddb79a6621af7264286892f8e39()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1ac83fd2152a75dc6fbc6f677d1794078b(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, std::unique_ptr< https://fuchsia.dev/reference/cpp/other/singletonfidl/async-event-handler#singletonfidl_1_1_async_event_handler< Protocol >> event_handler)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a61e0236bf159bc6657fc1dce5ca50a03(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, https://fuchsia.dev/reference/cpp/other/singletonfidl/async-event-handler#singletonfidl_1_1_async_event_handler< Protocol > *event_handler, https://fuchsia.dev/reference/cpp/class/fidl/any-teardown-observer#classfidl_1_1_any_teardown_observer teardown_observer)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a76acfc0aef59c7ab0d6b31d6d26ea119(https://fuchsia.dev/reference/cpp/other/singletonfidl/client-end#singletonfidl_1_1_client_end< Protocol > client_end, async_dispatcher_t *dispatcher, https://fuchsia.dev/reference/cpp/class/fidl/any-teardown-observer#classfidl_1_1_any_teardown_observer teardown_observer)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a46548b4a97a5347d4167958e58d5e7d1()` | `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1afa3a8d7c5dfe8ffeb433be61ffd79371() const ` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a4e9358d9e4862b6ecbdc2a015e0d1e73() const ` | ` `` ` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a0be2a4396f126674800033a92b93709b() const ` | `const NaturalClientImpl &` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1ad3e52773f0ae371f3106f4fbc2392f99() const ` | `const NaturalClientImpl *` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a28f64b3c1556e6ac7f281407d6e08d17(https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client && other) noexcept=default` | `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client &` |
| `https://fuchsia.dev/reference/cpp/class/fidl/shared-client#classfidl_1_1_shared_client_1a2a64042a89b60de9dab968ccc98bb418() const ` | `auto` |

## Public functions

### AsyncTeardown

```c++
void AsyncTeardown()
```

### Bind

```c++
void Bind(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  std::unique_ptr< fidl::AsyncEventHandler< Protocol >> event_handler
)
```

### Bind

```c++
void Bind(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  fidl::AsyncEventHandler< Protocol > *event_handler,
  fidl::AnyTeardownObserver teardown_observer
)
```

### Bind

```c++
void Bind(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  fidl::AnyTeardownObserver teardown_observer
)
```

### Clone

```c++
SharedClient Clone()
```

### SharedClient

```c++
 SharedClient(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  std::unique_ptr< AsyncEventHandler > event_handler
)
```

### SharedClient

```c++
 SharedClient(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  AsyncEventHandler *event_handler,
  fidl::AnyTeardownObserver teardown_observer
)
```

### SharedClient

```c++
 SharedClient(
  fidl::ClientEnd< Protocol > client_end,
  async_dispatcher_t *dispatcher,
  fidl::AnyTeardownObserver teardown_observer
)
```

### SharedClient

```c++
 SharedClient()=default
```

### SharedClient

```c++
 SharedClient(
  SharedClient && other
) noexcept=default
```

### is_valid

```c++
bool is_valid() const 
```

### operator bool

```c++
 operator bool() const 
```

### operator\*

```c++
const NaturalClientImpl & operator*() const 
```

### operator-\>

```c++
const NaturalClientImpl * operator->() const 
```

### operator=

```c++
SharedClient & operator=(
  SharedClient && other
) noexcept=default
```

### wire

```c++
auto wire() const 
```

### \~SharedClient

```c++
 ~SharedClient()=default
```