# zx::object_base

## Summary

### Inheritance

Direct Known Subclasses:[zx::object\< bti \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< channel \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< clock \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< counter \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< debuglog \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< event \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< eventpair \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< exception \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< fifo \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< guest \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< interrupt \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< iob \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< iommu \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< job \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< msi \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< pager \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< pmt \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< port \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< process \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< profile \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< resource \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< socket \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< stream \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< suspend_token \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< thread \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< timer \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< vcpu \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< vmar \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< vmo \>](https://fuchsia.dev/reference/cpp/class/zx/object), [zx::object\< T \>](https://fuchsia.dev/reference/cpp/class/zx/object)

| ### Protected attributes ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a1b3a14f4a87824e8a23546bfa004d6f5` | `zx_handle_t` |

| ### Public functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a62f7871a2eceb9ec4a5edde1ce4bef19((warn_unused_result))` | ` `` ` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a364576d5a2cefe4a9b151ff667305aa3() const ` | `zx_handle_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a48ce14da669911373651cb5a5b5a18df(uint32_t topic, void *buffer, size_t buffer_size, size_t *actual_count, size_t *avail_count)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a3a773a2b2ce1d6a945d7eab793d4b468(uint32_t property, void *value, size_t size)` | `zx_status_t` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a3f7d634bd223f8fd177a8e8f6979fb95() const ` | `bool` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a379bca4598d77b7791357f431d21e1fd() const ` | ` `` ` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a043e8e55bf39e1410210a5bd517e2685(zx_handle_t value)` | `void` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1acbb974af69c9f515bf23ac52609158ed()` | `zx_handle_t *` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1aa8b24df016b84ab028144840b5a73258(uint32_t property, const void *value, size_t size)` | `zx_status_t` |

| ### Protected functions ||
|---|---|
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1aee92d9fbef80df8cb9adbcff7047a310()` | `void` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a8e59559ad3a636c0097eecec472c7c00()` | `constexpr` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1afae083fc47561e2e9a36e3a55ffb59f4(zx_handle_t value)` | ` `` ` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1ae48f25d7269adfc9b912c1fa93e2e68d(const https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base &)=delete` | ` `` ` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1a136bf1967ae630f685a7890173dce4cc(const https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base &)=delete` | `void` |
| `https://fuchsia.dev/reference/cpp/class/zx/object-base#classzx_1_1object__base_1afe0b26eb5c0491c25644e3a5280db312()` | ` `` ` |

## Protected attributes

### value_

```c++
zx_handle_t value_
```

## Public functions

### __attribute__

```c++
 __attribute__(
  (warn_unused_result)
)
```

### get

```c++
zx_handle_t get() const 
```

### get_info

```c++
zx_status_t get_info(
  uint32_t topic,
  void *buffer,
  size_t buffer_size,
  size_t *actual_count,
  size_t *avail_count
)
```

### get_property

```c++
zx_status_t get_property(
  uint32_t property,
  void *value,
  size_t size
)
```

### is_valid

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

### operator bool

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

### reset

```c++
void reset(
  zx_handle_t value
)
```

### reset_and_get_address

```c++
zx_handle_t * reset_and_get_address()
```

### set_property

```c++
zx_status_t set_property(
  uint32_t property,
  const void *value,
  size_t size
)
```

## Protected functions

### close

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

### object_base

```c++
constexpr object_base()
```

### object_base

```c++
 object_base(
  zx_handle_t value
)
```

### object_base

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

### operator=

```c++
void operator=(
  const object_base &
)=delete
```

### \~object_base

```c++
 ~object_base()
```