# zx::channel

## Summary

### Inheritance

Inherits from: [zx::object\< channel \>](https://fuchsia.dev/reference/cpp/class/zx/object)

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1afa90c5584f221a41ca7bd412d1f0abe9()` ||
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1aa3942b11c4e6e8b412491f0768e276a7(zx_handle_t value)` ||
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a930380e4ed5116e65cb8eef2939b8b07(https://fuchsia.dev/reference/cpp/class/zx/object#classzx_1_1object && h)` ||
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a06bec991f048dc9ed1c2983fe761e86e(https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel && other)` ||

| ### Public static attributes ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a9b1a0331a9e3aaacea30df68988d52f1 = ZX_OBJ_TYPE_CHANNEL` | `constexpr zx_obj_type_t` |

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a0816596e6ded11dde5a7b94eeea00d8b(uint32_t flags, https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time deadline, const https://fuchsia.dev/reference/cpp/struct/zx-channel-call-args#structzx__channel__call__args *args, uint32_t *actual_bytes, uint32_t *actual_handles)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1ad986d1312b1ffa0f95691565c3fe7572(uint32_t flags, https://fuchsia.dev/reference/cpp/class/zx/basic-time#classzx_1_1basic__time deadline, https://fuchsia.dev/reference/cpp/struct/zx-channel-call-etc-args#structzx__channel__call__etc__args *args, uint32_t *actual_bytes, uint32_t *actual_handles)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a8965b45d36ff06684e0b05c9d5230602(https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel && other)` | `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel &` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1ad116c4f1b96c72b649c8812412156f4a(uint32_t flags, void *bytes, zx_handle_t *handles, uint32_t num_bytes, uint32_t num_handles, uint32_t *actual_bytes, uint32_t *actual_handles)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a05155a7c11e9875fb10e39ff97dfe5fd(uint32_t flags, void *bytes, https://fuchsia.dev/reference/cpp/struct/zx-handle-info#structzx__handle__info *handles, uint32_t num_bytes, uint32_t num_handles, uint32_t *actual_bytes, uint32_t *actual_handles)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a669580cf182a83b4748e28a68a391a0e(uint32_t flags, const void *bytes, uint32_t num_bytes, const zx_handle_t *handles, uint32_t num_handles)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1a4cf14a47c39008937577864d05e0665d(uint32_t flags, const void *bytes, uint32_t num_bytes, https://fuchsia.dev/reference/cpp/struct/zx-handle-disposition#structzx__handle__disposition *handles, uint32_t num_handles)` | `zx_status_t` |

| ### Public static functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel_1aad18dd262008a75cfda0340306a66e2b(uint32_t flags, https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel *endpoint0, https://fuchsia.dev/reference/cpp/class/zx/channel#classzx_1_1channel *endpoint1)` | `zx_status_t` |

## Public static attributes

### TYPE

```c++
constexpr zx_obj_type_t TYPE = ZX_OBJ_TYPE_CHANNEL
```

## Public functions

### call

```c++
zx_status_t call(
  uint32_t flags,
  zx::time deadline,
  const zx_channel_call_args_t *args,
  uint32_t *actual_bytes,
  uint32_t *actual_handles
)
```

### call_etc

```c++
zx_status_t call_etc(
  uint32_t flags,
  zx::time deadline,
  zx_channel_call_etc_args_t *args,
  uint32_t *actual_bytes,
  uint32_t *actual_handles
)
```

### channel

```c++
constexpr channel()=default
```

### channel

```c++
 channel(
  zx_handle_t value
)
```

### channel

```c++
 channel(
  handle && h
)
```

### channel

```c++
 channel(
  channel && other
)
```

### operator=

```c++
channel & operator=(
  channel && other
)
```

### read

```c++
zx_status_t read(
  uint32_t flags,
  void *bytes,
  zx_handle_t *handles,
  uint32_t num_bytes,
  uint32_t num_handles,
  uint32_t *actual_bytes,
  uint32_t *actual_handles
)
```

### read_etc

```c++
zx_status_t read_etc(
  uint32_t flags,
  void *bytes,
  zx_handle_info_t *handles,
  uint32_t num_bytes,
  uint32_t num_handles,
  uint32_t *actual_bytes,
  uint32_t *actual_handles
)
```

### write

```c++
zx_status_t write(
  uint32_t flags,
  const void *bytes,
  uint32_t num_bytes,
  const zx_handle_t *handles,
  uint32_t num_handles
)
```

### write_etc

```c++
zx_status_t write_etc(
  uint32_t flags,
  const void *bytes,
  uint32_t num_bytes,
  zx_handle_disposition_t *handles,
  uint32_t num_handles
)
```

## Public static functions

### create

```c++
zx_status_t create(
  uint32_t flags,
  channel *endpoint0,
  channel *endpoint1
)
```