# fidl::Encoder

## Summary

### Inheritance

Direct Known Subclasses:[fidl::BodyEncoder](https://fuchsia.dev/reference/cpp/class/fidl/body-encoder), [fidl::MessageEncoder](https://fuchsia.dev/reference/cpp/class/fidl/message-encoder)

| ### Constructors and Destructors ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a6543ab049780a8a77d7744758e0d6a42()` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1adc530be369f0737f56f3a36933ead88f(internal::WireFormatVersion wire_format)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a31d4e5e516d4edd3e34c040a68c1903f(https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder &&)` ||
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a98fbf47ec1045ed4fabd662c5c1bd84f()` ||

| ### Protected attributes ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a6cd43e15fcbe8c8746040608574d5cc9` | `std::vector< uint8_t >` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1aa341c0347f432aba38907e1ec5fdcd9b` | `std::vector< https://fuchsia.dev/reference/cpp/struct/zx-handle-disposition#structzx__handle__disposition >` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1ab78ce18eb84b99cb31a6ca3894f0bc07 = internal::WireFormatVersion::kV2` | `internal::WireFormatVersion` |

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a397f78be9c36e060e08e9e8531f3f553(size_t size)` | `size_t` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a94e47c1dc1f30be73d75675a811821c3() const ` | `size_t` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a3ba67ee2343df106fcf6b826503d9bf7() const ` | `size_t` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a089c697074d7b22a9a28076f60ce1a78(size_t offset)` | `T *` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1ad02c41941c19c18eb7857908e278aa52(size_t offset) const ` | `const T *` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a80be02643ab24eec0b0133ceccd1f8ef()` | `std::vector< uint8_t >` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a98367b6a92f6a8fa2caed69c566afb06(https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder &&) noexcept=default` | `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder &` |
| `https://fuchsia.dev/reference/cpp/class/fidl/encoder#classfidl_1_1_encoder_1a96a1a01370f21a59580ca2078c7c5846()` | `internal::WireFormatVersion` |

## Protected attributes

### bytes_

```c++
std::vector< uint8_t > bytes_
```

### handles_

```c++
std::vector< zx_handle_disposition_t > handles_
```

### wire_format_

```c++
internal::WireFormatVersion wire_format_ = internal::WireFormatVersion::kV2
```

## Public functions

### Alloc

```c++
size_t Alloc(
  size_t size
)
```

### CurrentHandleCount

```c++
size_t CurrentHandleCount() const 
```

### CurrentLength

```c++
size_t CurrentLength() const 
```

### Encoder

```c++
 Encoder()=default
```

### Encoder

```c++
 Encoder(
  internal::WireFormatVersion wire_format
)
```

### Encoder

```c++
 Encoder(
  Encoder &&
) noexcept=default
```

### GetPtr

```c++
T * GetPtr(
  size_t offset
)
```

### GetPtr

```c++
const T * GetPtr(
  size_t offset
) const 
```

### TakeBytes

```c++
std::vector< uint8_t > TakeBytes()
```

### operator=

```c++
Encoder & operator=(
  Encoder &&
) noexcept=default
```

### wire_format

```c++
internal::WireFormatVersion wire_format()
```

### \~Encoder

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