# litert::Environment


`#include <litert_environment.h>`

The environment works like a context that holds the runtime states.

## Summary

To create a `https://developers.google.com/edge/api/litert/c/classlitert/1-1-compiled-model#classlitert_1_1_compiled_model` or `https://developers.google.com/edge/api/litert/c/classlitert/1-1-tensor-buffer#classlitert_1_1_tensor_buffer`, an [Environment](https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment) is required. In a case of having multiple CompiledModels, it is recommended to share the same [Environment](https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment).

| ### Public functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a6a0f79dc3bd73b963c213d6b71061e86() const noexcept` | `LiteRtEnvironment` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a41dd045b9fdb445b2f954bd0392649a4() const noexcept` | `https://developers.google.com/edge/api/litert/c/structlitert/1-1internal-1-1-environment-holder#structlitert_1_1internal_1_1_environment_holder` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a4ac4fe1abe295c92f404de82ce0f86b6() const ` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment-options#classlitert_1_1_environment_options >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a367936e48b33fee54fd84ad8e26233cf() noexcept` | `https://developers.google.com/edge/api/litert/c/structlitert/1-1internal-1-1-environment-holder#structlitert_1_1internal_1_1_environment_holder` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a32e5954aa0169f5c089298636677c609() const ` | `bool` Returns whether the environment supports AHWB/CL interop. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a52298d8427943152e9b4b2f9f4cb821f() const ` | `bool` Returns whether the environment supports AHWB/GL interop. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1ab8d9390bf511f658e73843f4e52d048f() const ` | `bool` Returns whether the environment supports CL/GL interop. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a576bda16e0cf4a63b5dfc529169d9896("Use https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment-options#classlitert_1_1_environment_options_1ae3ae0b076adcc94af38ca59ae3ef24ab instead.")]] OptionTag` | `enum` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a143494e312d13354e05a1242f54d6bc6("Use https://developers.google.com/edge/api/litert/c/structlitert/1-1-environment-options-1-1-option#structlitert_1_1_environment_options_1_1_option instead.")]] Option` | `struct` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1afdec5c669abdda455bf4ebd40d4592c6() const noexcept` | Returns `true` if the underlying LiteRT handle is valid. |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1ad56e75da1263e0c320fdf0ac92b4b003(const https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment & other) const noexcept` | `bool` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1aee818eef3fb7cd0c58a6a0f1d719f59e(const https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment & other) const noexcept` | `bool` |

| ### Public static functions ||
|---|---|
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1ac0c2fa3dba44f176c389f144ac72d3c8(absl::Span< const Option > options)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1ac460ecb5650933d3ced24d048ffedcdc(const https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment-options#classlitert_1_1_environment_options & options)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-expected#classlitert_1_1_expected< https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment >` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1a07dddf9786ae38f17f9f5b34ff626ce0(LiteRtEnvironment env, OwnHandle owned)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment` |
| `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment_1af86f13d22cbb44334539c2e59b2d27e7(const https://developers.google.com/edge/api/litert/c/structlitert/1-1internal-1-1-environment-holder#structlitert_1_1internal_1_1_environment_holder & env, OwnHandle owned)` | `https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment#classlitert_1_1_environment` |

## Public functions

### Get

```
LiteRtEnvironment Get() const noexcept
```

### GetHolder

```
internal::EnvironmentHolder GetHolder() const noexcept
```

### GetOptions

```
Expected< EnvironmentOptions > GetOptions() const 
```

### Release

```
internal::EnvironmentHolder Release() noexcept
```

### SupportsAhwbClInterop

```
bool SupportsAhwbClInterop() const 
```
Returns whether the environment supports AHWB/CL interop.

### SupportsAhwbGlInterop

```
bool SupportsAhwbGlInterop() const 
```
Returns whether the environment supports AHWB/GL interop.

### SupportsClGlInterop

```
bool SupportsClGlInterop() const 
```
Returns whether the environment supports CL/GL interop.

### deprecated

```
enum deprecated(
  "Use https://developers.google.com/edge/api/litert/c/classlitert/1-1-environment-options#classlitert_1_1_environment_options_1ae3ae0b076adcc94af38ca59ae3ef24ab instead."
)]] OptionTag
```

### deprecated

```
struct deprecated(
  "Use EnvironmentOptions::Option instead."
)]] Option
```

### operator bool

```
 operator bool() const noexcept
```
Returns `true` if the underlying LiteRT handle is valid.

### operator!=

```
bool operator!=(
  const Environment & other
) const noexcept
```

### operator==

```
bool operator==(
  const Environment & other
) const noexcept
```

## Public static functions

### Create

```
Expected< Environment > Create(
  absl::Span< const Option > options
)
```

### Create

```
Expected< Environment > Create(
  const EnvironmentOptions & options
)
```

### WrapCObject

```
Environment WrapCObject(
  LiteRtEnvironment env,
  OwnHandle owned
)
```

### WrapCObject

```
Environment WrapCObject(
  const internal::EnvironmentHolder & env,
  OwnHandle owned
)
```