# fdf::Channel

## Summary

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a0243e33454f4943a38747a34752914d1()` ||
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a854812918a4d4411ac6de4cc416870f2(fdf_handle_t channel)` ||
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a7b45afbd7a71dc3db7dc5a84c39aeefa(const https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel & to_copy)` ||
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a09d724970cb49f75930cfcccb2b6b73c(https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel && other)` ||
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1acf131f81a5710919a23ab9672f3041cc()` ||

| ### Public types ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a4bdab71c0c04f7e5aca6d8833ee84dda` | using `fdf_handle_t` |

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a27a917079f4c614430396a8c1996309d(uint32_t options, https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time deadline, const https://fuchsia.dev/reference/cpp/class/fdf/arena#classfdf_1_1_arena & arena, void *data, uint32_t num_bytes, https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< zx_handle_t > handles) const ` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< https://fuchsia.dev/reference/cpp/struct/fdf/channel/read-return#structfdf_1_1_channel_1_1_read_return >` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a422135bf6defc85eee1fd1b9e75d03ad(uint32_t options) const ` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result< https://fuchsia.dev/reference/cpp/struct/fdf/channel/read-return#structfdf_1_1_channel_1_1_read_return >` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a4d7885ecf7a23ba3b30472c6c502a1dd(uint32_t options, const https://fuchsia.dev/reference/cpp/class/fdf/arena#classfdf_1_1_arena & arena, void *data, uint32_t num_bytes, https://fuchsia.dev/reference/cpp/other/singletoncpp20/span#singletoncpp20_1_1span< zx_handle_t > handles) const ` | `https://fuchsia.dev/reference/cpp/other/singletonzx/result#singletonzx_1_1result` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a118af690b4dc263ff4f37299d00fc963() const ` | `https://fuchsia.dev/reference/cpp/class/fdf/unowned#classfdf_1_1_unowned< https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel >` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a7bc6cb68e58bb9bcf2c6ddad64b572b6()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1ac57e1204bcfed3376a13e690c57db3e7() const ` | `fdf_handle_t` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a01d36a7394a80492d7f3dab3de1ed794() const ` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a065d4c9f681eddacadf226c955f885a7(const https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel & other)=delete` | `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel &` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1ae3a89db8d5c3fdaeb713a24bd2bbbcac(https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel && other) noexcept` | `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel &` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1ad223c870fa65cd25f05bba19308ab4cb()` | `fdf_handle_t` |
| `https://fuchsia.dev/reference/cpp/class/fdf/channel#classfdf_1_1_channel_1a024c05ad1ab79c236e6c219006c0bba0(fdf_handle_t channel)` | `void` |

| ### Structs ||
|---|---|
| [fdf::Channel::ReadReturn](https://fuchsia.dev/reference/cpp/struct/fdf/channel/read-return) |   |

## Public types

### HandleType

```c++
fdf_handle_t HandleType
```

## Public functions

### Call

```c++
zx::result< ReadReturn > Call(
  uint32_t options,
  zx::time deadline,
  const Arena & arena,
  void *data,
  uint32_t num_bytes,
  cpp20::span< zx_handle_t > handles
) const 
```

### Channel

```c++
 Channel()
```

### Channel

```c++
 Channel(
  fdf_handle_t channel
)
```

### Channel

```c++
 Channel(
  const Channel & to_copy
)=delete
```

### Channel

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

### Read

```c++
zx::result< ReadReturn > Read(
  uint32_t options
) const 
```

### Write

```c++
zx::result Write(
  uint32_t options,
  const Arena & arena,
  void *data,
  uint32_t num_bytes,
  cpp20::span< zx_handle_t > handles
) const 
```

### borrow

```c++
Unowned< Channel > borrow() const 
```

### close

```c++
void close()
```

### get

```c++
fdf_handle_t get() const 
```

### is_valid

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

### operator=

```c++
Channel & operator=(
  const Channel & other
)=delete
```

### operator=

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

### release

```c++
fdf_handle_t release()
```

### reset

```c++
void reset(
  fdf_handle_t channel
)
```

### \~Channel

```c++
 ~Channel()
```