# sys::ServiceDirectory

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1acefb0971f537f83e6a588231e1d5e98a(https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel directory)` ||
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a1501dc2d17e8edad82100c49ea1ac917(https://fuchsia.dev/reference/cpp/class/fidl/interface-handle#classfidl_1_1_interface_handle< fuchsia::io::Directory > directory)` ||
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1aa3af7fb7351b13d62aa298eaefe5e8d4(const https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory &)` ||
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1aaf96279668bdb84ab4d0d250cb971b6c(https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory && other)` ||
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a6717e466d48194732d1e67fbf630f461()` ||

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a1bfab486fbefc9177ece2d96218d6312() const ` | `https://fuchsia.dev/reference/cpp/class/fidl/interface-handle#classfidl_1_1_interface_handle< fuchsia::io::Directory >` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a157d79a7094e1811e1e986fd3314e144(https://fuchsia.dev/reference/cpp/class/fidl/interface-request#classfidl_1_1_interface_request< fuchsia::io::Directory >) const ` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1aade34f23b2c17d6d5ecafcdd94ba933c(const std::string & interface_name) const ` | `https://fuchsia.dev/reference/cpp/class/fidl/interface-ptr#classfidl_1_1_interface_ptr< Interface >` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1abe06c97a9994fa0d26438b8702634207(https://fuchsia.dev/reference/cpp/class/fidl/interface-request#classfidl_1_1_interface_request< Interface > request, const std::string & interface_name) const ` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a03053aff87c1af541e3332077beac4a8(const std::string & interface_name, https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel request) const ` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a235d050f6614cb69b16f729ff635d44a(const https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory &)=delete` | `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory &` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1afa09026e2254b7a53f9b9f61af35184b(https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory && other) noexcept` | `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory &` |

| ### Public static functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1ac3c92416678fb58e88131d4e80f589f2()` | `std::shared_ptr< https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory >` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a1363b02c19757019a3825b9fbf4e0b9f(https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel *out_request)` | `std::shared_ptr< https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory >` |
| `https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory_1a93a8888ce885f89210102e90721fd1fb(https://fuchsia.dev/reference/cpp/class/fidl/interface-request#classfidl_1_1_interface_request< fuchsia::io::Directory > *out_request)` | `std::shared_ptr< https://fuchsia.dev/reference/cpp/class/sys/service-directory#classsys_1_1_service_directory >` |

## Public functions

### CloneChannel

```c++
fidl::InterfaceHandle< fuchsia::io::Directory > CloneChannel() const 
```

### CloneChannel

```c++
zx_status_t CloneChannel(
  fidl::InterfaceRequest< fuchsia::io::Directory >
) const 
```

### Connect

```c++
fidl::InterfacePtr< Interface > Connect(
  const std::string & interface_name
) const 
```

### Connect

```c++
zx_status_t Connect(
  fidl::InterfaceRequest< Interface > request,
  const std::string & interface_name
) const 
```

### Connect

```c++
zx_status_t Connect(
  const std::string & interface_name,
  zx::channel request
) const 
```

### ServiceDirectory

```c++
 ServiceDirectory(
  zx::channel directory
)
```

### ServiceDirectory

```c++
 ServiceDirectory(
  fidl::InterfaceHandle< fuchsia::io::Directory > directory
)
```

### ServiceDirectory

```c++
 ServiceDirectory(
  const ServiceDirectory &
)=delete
```

### ServiceDirectory

```c++
 ServiceDirectory(
  ServiceDirectory && other
) noexcept
```

### operator=

```c++
ServiceDirectory & operator=(
  const ServiceDirectory &
)=delete
```

### operator=

```c++
ServiceDirectory & operator=(
  ServiceDirectory && other
) noexcept
```

### \~ServiceDirectory

```c++
 ~ServiceDirectory()
```

## Public static functions

### CreateFromNamespace

```c++
std::shared_ptr< ServiceDirectory > CreateFromNamespace()
```

### CreateWithRequest

```c++
std::shared_ptr< ServiceDirectory > CreateWithRequest(
  zx::channel *out_request
)
```

### CreateWithRequest

```c++
std::shared_ptr< ServiceDirectory > CreateWithRequest(
  fidl::InterfaceRequest< fuchsia::io::Directory > *out_request
)
```