# QairtBackend

Note

Some methods in this module are not yet implemented in the current release
and will raise an exception if called. See the C API for full functionality.

**Include:** `#include "QairtCppApi/QairtBackend.hpp"`

C++ wrapper for the QAIRT Backend API.

- namespace qairt

    - Enums

- enum class BackendError : std::underlying\_type\_t&lt;[QairtBackend\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv420QairtBackend_Error_t)&gt;

    - Error codes returned by QAIRT backend operations.

| Enumerator | Description |
| --- | --- |
| `NoError` | Operation succeeded. |
| `MemAlloc` | Memory allocation failure. |
| `UnsupportedPlatform` | [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend) creation attempted on an unsupported platform. |
| `CannotInitialize` | [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend) failed to initialize. |
| `TerminateFailed` | Failed to free allocated resources during termination. |
| `NotSupported` | Requested functionality is not supported by this backend. |
| `InvalidArgument` | An argument to the operation was invalid. |
| `OpPackageNotFound` | The specified op package library could not be found. |
| `OpPackageIfProviderNotFound` | The interface provider symbol was not found in the op package. |
| `OpPackageRegistrationFailed` | Op package registration failed. |
| `OpPackageUnsupportedVersion` | The op package interface version is not supported. |
| `OpPackageDuplicate` | An op with the same package and op name is already registered. |
| `InconsistentConfig` | [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend) configuration is inconsistent across create calls. |
| `InvalidHandle` | The provided backend handle is not valid. |
| `InvalidConfig` | One or more configuration values are invalid. |
| `Undefined` | An undefined or unknown error occurred. |

*Values:*

- enumerator NoError = [QAIRT\_BACKEND\_NO\_ERROR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t22QAIRT_BACKEND_NO_ERRORE)

    - 

- enumerator MemAlloc = [QAIRT\_BACKEND\_ERROR\_MEM\_ALLOC](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t29QAIRT_BACKEND_ERROR_MEM_ALLOCE)

    - 

- enumerator UnsupportedPlatform = [QAIRT\_BACKEND\_ERROR\_UNSUPPORTED\_PLATFORM](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t40QAIRT_BACKEND_ERROR_UNSUPPORTED_PLATFORME)

    - 

- enumerator CannotInitialize = [QAIRT\_BACKEND\_ERROR\_CANNOT\_INITIALIZE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t37QAIRT_BACKEND_ERROR_CANNOT_INITIALIZEE)

    - 

- enumerator TerminateFailed = [QAIRT\_BACKEND\_ERROR\_TERMINATE\_FAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t36QAIRT_BACKEND_ERROR_TERMINATE_FAILEDE)

    - 

- enumerator NotSupported = [QAIRT\_BACKEND\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t33QAIRT_BACKEND_ERROR_NOT_SUPPORTEDE)

    - 

- enumerator InvalidArgument = [QAIRT\_BACKEND\_ERROR\_INVALID\_ARGUMENT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t36QAIRT_BACKEND_ERROR_INVALID_ARGUMENTE)

    - 

- enumerator OpPackageNotFound = [QAIRT\_BACKEND\_ERROR\_OP\_PACKAGE\_NOT\_FOUND](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t40QAIRT_BACKEND_ERROR_OP_PACKAGE_NOT_FOUNDE)

    - 

- enumerator OpPackageIfProviderNotFound = [QAIRT\_BACKEND\_ERROR\_OP\_PACKAGE\_IF\_PROVIDER\_NOT\_FOUND](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t52QAIRT_BACKEND_ERROR_OP_PACKAGE_IF_PROVIDER_NOT_FOUNDE)

    - 

- enumerator OpPackageRegistrationFailed = [QAIRT\_BACKEND\_ERROR\_OP\_PACKAGE\_REGISTRATION\_FAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t50QAIRT_BACKEND_ERROR_OP_PACKAGE_REGISTRATION_FAILEDE)

    - 

- enumerator OpPackageUnsupportedVersion = [QAIRT\_BACKEND\_ERROR\_OP\_PACKAGE\_UNSUPPORTED\_VERSION](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t50QAIRT_BACKEND_ERROR_OP_PACKAGE_UNSUPPORTED_VERSIONE)

    - 

- enumerator OpPackageDuplicate = [QAIRT\_BACKEND\_ERROR\_OP\_PACKAGE\_DUPLICATE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t40QAIRT_BACKEND_ERROR_OP_PACKAGE_DUPLICATEE)

    - 

- enumerator InconsistentConfig = [QAIRT\_BACKEND\_ERROR\_INCONSISTENT\_CONFIG](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t39QAIRT_BACKEND_ERROR_INCONSISTENT_CONFIGE)

    - 

- enumerator InvalidHandle = [QAIRT\_BACKEND\_ERROR\_INVALID\_HANDLE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t34QAIRT_BACKEND_ERROR_INVALID_HANDLEE)

    - 

- enumerator InvalidConfig = [QAIRT\_BACKEND\_ERROR\_INVALID\_CONFIG](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t34QAIRT_BACKEND_ERROR_INVALID_CONFIGE)

    - 

- enumerator Undefined = [QAIRT\_BACKEND\_ERROR\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv4N20QairtBackend_Error_t29QAIRT_BACKEND_ERROR_UNDEFINEDE)

    -

- enum class ErrorReportingConfigLevel : std::underlying\_type\_t&lt;[QairtErrorReporting\_Config\_Level\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv434QairtErrorReporting_Config_Level_t)&gt;

    - Verbosity levels for the error reporting configuration.

| Enumerator | Description |
| --- | --- |
| `Brief` | Collect basic summary information about each error. |
| `Detailed` | Collect detailed, memory-resident error information. |
| `Undefined` | Level is unset or unknown. |

*Values:*

- enumerator Brief = [QAIRT\_ERROR\_REPORTING\_LEVEL\_BRIEF](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N34QairtErrorReporting_Config_Level_t33QAIRT_ERROR_REPORTING_LEVEL_BRIEFE)

    - 

- enumerator Detailed = [QAIRT\_ERROR\_REPORTING\_LEVEL\_DETAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N34QairtErrorReporting_Config_Level_t36QAIRT_ERROR_REPORTING_LEVEL_DETAILEDE)

    - 

- enumerator Undefined = [QAIRT\_ERROR\_REPORTING\_LEVEL\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N34QairtErrorReporting_Config_Level_t37QAIRT_ERROR_REPORTING_LEVEL_UNDEFINEDE)

    -

- class Backend : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7BackendE), [QairtBackend\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv417QairtBackend_V1_t)&gt;

    - *#include &lt;QairtBackend.hpp&gt;*

Wrapper for a QAIRT [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend) handle.

Obtained via Api::createBackend().

Public Functions

- Backend() noexcept = default

    - 

- Backend(const [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7Backend7BackendERK7Backend)&) = delete

    - 

- Backend([Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7Backend7BackendERR7Backend)&&) noexcept = default

    - 

- [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7BackendE) &operator=(const [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7BackendE)&) = delete

    - 

- [Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7BackendE) &operator=([Backend](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt7BackendE)&&) noexcept = default

    - 

- inline Backend(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtBackend\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv421QairtBackend_Handle_t) handle)

    - 

- inline void setConfig(const [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &config)

    - Set configuration options on this backend after creation.

See also

[QairtBackend\_setConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1ad9fcc9f8ce00ee9f1d2e6ffb78c02c8e)

- Parameters

    - **config** – **[in]** The backend configuration to apply.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle, invalid config, or unsupported feature.

- inline void registerOpPackage(const char \*packagePath, const char \*interfaceProvider, const char \*target)

    - Register an op package library with this backend.

Loads the shared library at *packagePath* and registers its operations using the interface provider function *interfaceProvider*. An optional *target* platform string restricts registration to a specific processing unit.

See also

[QairtBackend\_registerOpPackage](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1a780838960f4a602a9f7aefa8684627f5)

- Parameters

    - - **packagePath** – **[in]** Path on disk to the op package shared library. Must not be NULL.
- **interfaceProvider** – **[in]** Name of the interface provider function exported by the op package library. Must not be NULL.
- **target** – **[in]** Optional target platform string. NULL applies no target restriction.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on:

- invalid handle
- NULL *packagePath* or *interfaceProvider*
- library not found
- interface provider symbol not found
- registration failure
- unsupported op package interface version
- duplicate op registration

- inline void registerOpPackage(const std::string &packagePath, const std::string &interfaceProvider, const std::string &target)

    - Wrapper which allows for `std::string` path arguments instead of `const char*`.

See also

[Backend::registerOpPackage(const char\*, const char\*, const char\*)](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend_1ae3218992c75bb1505057ec1e14b9a57d)

- inline std::vector&lt;[BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationNameE)&gt; getSupportedOperations() const

    - Get all operations supported by this backend, including built-in ops.

See also

[QairtBackend\_getSupportedOperations](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1a97422adf4c4b33e5132e8ec80ee26dc7)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Vector of [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendOperationName) descriptors, one per supported operation.

- inline void validateOpConfig(const [OpConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtOpConfig.html#_CPPv4N5qairt8OpConfigE) &opConfig)

    - Validate an op configuration against the appropriate registered op package.

The backend selects the op package for validation based on attributes of *opConfig*.

See also

[QairtBackend\_validateOpConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1ae93ab701ddc302637968e0badca0bd6b)

- Parameters

    - **opConfig** – **[in]** The op configuration to validate.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on:

- invalid handle
- validation failure
- validation not supported by this backend
- no matching op package found

- inline void validateContextBinary(ApiTypeRef&lt;const [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt6DeviceE)&&gt; device, ApiTypeRef&lt;const [ContextBinaryBuffer](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt19ContextBinaryBufferE)&&gt; contextBinary, ApiTypeRef&lt;const [ContextConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt20ContextConfigurationE)&&gt; contextConfig)

    - Validate a context binary against a device and context configuration.

Checks that the binary is compatible with *device* and the options in *contextConfig* before it is loaded via [createContextFromBinary()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend_1a5c748e07f3e91a28fc55a43f32876df6).

- Parameters

    - - **device** – **[in]** The device on which the binary would be loaded.
- **contextBinary** – **[in]** The context binary buffer to validate.
- **contextConfig** – **[in]** The context configuration to validate against.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or validation failure.

- inline [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt7ContextE) createContext(ApiTypeRef&lt;const [ContextConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt20ContextConfigurationE)&&gt; contextConfig = {})

    - Create a context using this backend.

Creates a context with no device (uses backend default) and an optional context configuration.

- Parameters

    - **contextConfig** – **[in]** [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context) configuration. Optional.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or configuration error.

- Returns

    - A new [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context).

- inline [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt7ContextE) createContext(ApiTypeRef&lt;const [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt6DeviceE)&&gt; device, ApiTypeRef&lt;const [ContextConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt20ContextConfigurationE)&&gt; contextConfig)

    - Create a context for a specific device using this backend.

- Parameters

    - - **device** – **[in]** The device on which to create the context.
- **contextConfig** – **[in]** [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context) configuration. Optional.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or configuration error.

- Returns

    - A new [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context).

- inline [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt7ContextE) createContextFromBinary(ApiTypeRef&lt;const [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt6DeviceE)&&gt; device, ApiTypeRef&lt;const [ContextConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt20ContextConfigurationE)&&gt; contextConfig, ApiTypeRef&lt;const [ContextBinaryBuffer](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#_CPPv4N5qairt19ContextBinaryBufferE)&&gt; contextBinaryBuffer, ApiTypeRef&lt;const [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt6SignalE)&&gt; signal = {}, ApiTypeRef&lt;const [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE)&&gt; profile = {})

    - Create a context from a serialized context binary.

Pass a [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#classqairt_1_1Signal) to enable aborting or timing out the load operation.

- Parameters

    - - **device** – **[in]** The device on which to load the context binary.
- **contextConfig** – **[in]** [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context) configuration. Optional.
- **contextBinaryBuffer** – **[in]** The serialized context binary to load.
- **signal** – **[in]** Optional signal to control the load operation.
- **profile** – **[in]** Optional profile handle to collect load-time events.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle, binary incompatibility, or configuration error.

- Returns

    - A new [Context](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtContext.html#classqairt_1_1Context).

- inline [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE) createProfile(uint32\_t level)

    - Create a profiling handle at the specified granularity.

See also

[QairtBackend\_createProfile](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1a6599ba53ba51655ed438746773f89fa8)

- Parameters

    - **level** – **[in]** Granularity level at which events should be collected.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle, unsupported profiling level, or memory error.

- Returns

    - A new [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile).

- inline std::shared\_ptr&lt;[Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE)&gt; createSharedProfile(uint32\_t level)

    - Create a shared profiling handle at the specified granularity.

See also

[QairtBackend\_createProfile](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackend_8h_1a6599ba53ba51655ed438746773f89fa8)

- Parameters

    - **level** – **[in]** Granularity level at which events should be collected.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle, unsupported profiling level, or memory error.

- Returns

    - A `std::shared_ptr` to a new [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile).

- inline [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt6SignalE) createSignal(ApiTypeRef&lt;const [SignalConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt19SignalConfigurationE)&&gt; signalConfig = {})

    - Create a new signal object associated with this backend.

Signals are used to control the execution of API calls that accept them (e.g., Graph::execute, Context::createFromBinary). The created signal is idle and immediately available for use.

The signal is backend-scoped: the backend allocates any required synchronization primitives and validates signal support. A signal may only be used with the backend that created it.

- Parameters

    - **signalConfig** – **[in]** Configuration for the signal. Optional.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on:

- invalid handle
- signals not supported by this backend
- invalid signal configuration
- memory allocation failure

- Returns

    - A new [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#classqairt_1_1Signal) object.

Private Functions

- inline Backend(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, ApiTypeRef&lt;const [Log](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv4N5qairt3LogE)&&gt; log, ApiTypeRef&lt;const [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE)&&gt; config = {})

    -

Private Members

- [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable&lt;[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::set\_only&lt;[BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE)&gt;, nullptr, &interface\_type::setConfig&gt; m\_memory

    - Staging storage for a [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration) being crossed to the C layer.

Friends

- *friend class* Api

- class BackendConfiguration : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE), [QairtBackend\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv423QairtBackend_ConfigV1_t)&gt;

    - *#include &lt;QairtBackend.hpp&gt;*

Configuration object for backend creation and reconfiguration.

Construct directly — `BackendConfiguration()` — and call setter methods to populate options before passing to Api::createBackend() or [Backend::setConfig()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend_1a7da4018df5b85ea1b9eb0e86003e2eff). All setter methods return `*this` to support method chaining.

Public Functions

- BackendConfiguration() noexcept = default

    - 

- BackendConfiguration(const [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfiguration20BackendConfigurationERK20BackendConfiguration)&) = delete

    - 

- BackendConfiguration([BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfiguration20BackendConfigurationERR20BackendConfiguration)&&) noexcept = default

    - 

- [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &operator=(const [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE)&) = delete

    - 

- [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &operator=([BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE)&&) noexcept = default

    - 

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &setCustomConfig(const [BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfigE) &backendCustomConfig)

    - Set a single backend-specific custom configuration item on this configuration.

See also

[QairtBackend\_Config\_setCustomConfigs](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1ab9d8a2cd899f676c5c70908d041a42d5)

- Parameters

    - **backendCustomConfig** – **[in]** The custom configuration item whose handle will be applied.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Reference to this object for method chaining.

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &setCustomConfigs(const [BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfigurationE) &config)

    - Set a collection of backend-specific custom configuration items on this configuration.

See also

[QairtBackend\_Config\_setCustomConfigs](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1ab9d8a2cd899f676c5c70908d041a42d5)

- Parameters

    - **config** – **[in]** The custom configuration collection whose handles will be applied.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Reference to this object for method chaining.

- inline uint32\_t getNumPlatformOptions() const

    - Get the number of platform options set on this configuration.

See also

[QairtBackend\_Config\_getNumPlatformOptions](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a8d6a19c0ee50fd580cb26dca82205d55)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Number of platform option strings currently set.

- inline std::string\_view getPlatformOptionAt(uint32\_t idx) const

    - Get the platform option string at the specified index.

See also

[QairtBackend\_Config\_getPlatformOptionAt](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a2ed0e256da478ce05cc3be2c14659db0)

- Parameters

    - **idx** – **[in]** Zero-based index into the platform options list. Must be less than [getNumPlatformOptions()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration_1ab694c821fc350e6f2964411b624f468d).

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or out-of-range index.

- Returns

    - The null-terminated platform option key-value pair string at *idx*, or an empty view if the stored pointer is null.

- inline std::vector&lt;std::string\_view&gt; getPlatformOptions() const

    - Get all platform option strings set on this configuration.

See also

[QairtBackend\_Config\_getNumPlatformOptions](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a8d6a19c0ee50fd580cb26dca82205d55)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Vector of platform option key-value pair strings.

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &setPlatformOptions(const std::vector&lt;const char\*&gt; &platformOptions)

    - Set the platform options on this configuration from an array of C strings.

See also

[QairtBackend\_Config\_setPlatformOptions](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1aa84d91242ed90abc98573a02b2127eee)

- Parameters

    - **platformOptions** – **[in]** Array of null-terminated platform option strings.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid options.

- Returns

    - Reference to this object for method chaining.

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &setPlatformOptions(const std::vector&lt;std::string&gt; &platformOptions)

    - Wrapper which allows for `std::string` platform option values instead of `const char*`.

See also

[BackendConfiguration::setPlatformOptions(const std::vector&lt;const char\*&gt;&)](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration_1a7cb329b41dce36019dd4a62342d89933)

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &setPlatformOptions(const std::vector&lt;std::string\_view&gt; &platformOptions)

    - Wrapper which allows for `std::string_view` platform option values instead of `const char*`.

See also

[BackendConfiguration::setPlatformOptions(const std::vector&lt;const char\*&gt;&)](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration_1a7cb329b41dce36019dd4a62342d89933)

- inline [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendConfigurationE) &resetPlatformOptions()

    - Clear all platform options from this configuration.

See also

[QairtBackend\_Config\_setPlatformOptions](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1aa84d91242ed90abc98573a02b2127eee)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Reference to this object for method chaining.

- inline std::optional&lt;std::reference\_wrapper&lt;[ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20ErrorReportingConfigE)&gt;&gt; getErrorReportingConfig()

    - Get the error reporting configuration attached to this backend configuration.

See also

[QairtBackend\_Config\_getErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a92370b9db04bf265d32ac0e973089da7)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - A reference wrapper to the attached [ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1ErrorReportingConfig), or an empty optional if none has been set.

- inline std::optional&lt;std::reference\_wrapper&lt;[ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20ErrorReportingConfigE)&gt;&gt; getErrorReportingConfig() const

    - Get the error reporting configuration attached to this backend configuration.

See also

[QairtBackend\_Config\_getErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a92370b9db04bf265d32ac0e973089da7)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - A const reference wrapper to the attached [ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1ErrorReportingConfig), or an empty optional if none has been set.

- inline void setErrorReportingConfig(const [ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20ErrorReportingConfigE) &errorReportingConfig)

    - Attach an error reporting configuration to this backend configuration.

See also

[QairtBackend\_Config\_setErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendConfig_8h_1a2a9dfc6406ba0b7ba9321a3656c0146c)

- Parameters

    - **errorReportingConfig** – **[in]** The error reporting configuration to attach.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

Private Functions

- inline void prepareToCross() const

    - 

- inline void updateAfterCross() const

    - 

- inline explicit BackendConfiguration(const std::shared\_ptr&lt;ApiTable&gt; &apiTable)

    -

Private Members

- std::optional&lt;[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable&lt;[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning&lt;[ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20ErrorReportingConfigE)&gt;, &interface\_type::getErrorReportingConfig, &interface\_type::setErrorReportingConfig&gt;&gt; m\_errorReportingConfig

    - Optional error reporting configuration cross-linked to the C handle.

Friends

- *friend class* Api

- class BackendCustomConfig : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::CustomConfigType

    - *#include &lt;QairtBackend.hpp&gt;*

Abstract base class for a single backend-specific custom configuration item.

Subclass this to provide a backend-specific configuration handle to [BackendConfiguration::setCustomConfig()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration_1a98e1783af51c75c9f6cd8e7f78dd35e5). Refer to the backend documentation for the concrete subclass and valid handle values.

Public Functions

- virtual ~BackendCustomConfig() = default

    - 

- virtual [QairtBackend\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv433QairtBackend_CustomConfigHandle_t) getCustomConfigHandle() const = 0

    - Get the underlying C handle for this custom configuration item.

- Returns

    - The backend-specific custom configuration handle.

Protected Functions

- BackendCustomConfig() = default

    - 

- BackendCustomConfig(const [BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfig19BackendCustomConfigERK19BackendCustomConfig)&) = default

    - 

- BackendCustomConfig([BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfig19BackendCustomConfigERR19BackendCustomConfig)&&) noexcept = default

    - 

- [BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfigE) &operator=(const [BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfigE)&) = default

    - 

- [BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfigE) &operator=([BackendCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt19BackendCustomConfigE)&&) noexcept = default

    -

- class BackendCustomConfiguration

    - *#include &lt;QairtBackend.hpp&gt;*

Abstract base class for a collection of backend-specific custom configuration items.

Subclass this to provide multiple backend-specific configuration handles to [BackendConfiguration::setCustomConfigs()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration_1a7d4f64eb9e7a204992b303ced8dbd0be). Refer to the backend documentation for the concrete subclass and valid handle values.

Public Functions

- virtual ~BackendCustomConfiguration() = default

    - 

- virtual std::vector&lt;[QairtBackend\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv433QairtBackend_CustomConfigHandle_t)&gt; getCustomConfigs() const = 0

    - Get the list of underlying C handles for this custom configuration collection.

- Returns

    - Vector of backend-specific custom configuration handles.

Protected Functions

- BackendCustomConfiguration() = default

    - 

- BackendCustomConfiguration(const [BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfiguration26BackendCustomConfigurationERK26BackendCustomConfiguration)&) = default

    - 

- BackendCustomConfiguration([BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfiguration26BackendCustomConfigurationERR26BackendCustomConfiguration)&&) noexcept = default

    - 

- [BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfigurationE) &operator=(const [BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfigurationE)&) = default

    - 

- [BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfigurationE) &operator=([BackendCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt26BackendCustomConfigurationE)&&) noexcept = default

    -

- class BackendOperationName

    - *#include &lt;QairtBackend.hpp&gt;*

Name descriptor for a single operation supported by a backend.

Obtained from [Backend::getSupportedOperations()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1Backend_1a7fda133f7b89fadf2f68ccb9aaedac14). All string views are non-owning references to backend-managed memory.

Public Functions

- constexpr BackendOperationName() noexcept = default

    - 

- constexpr BackendOperationName(const [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationName20BackendOperationNameERK20BackendOperationName)&) noexcept = default

    - 

- constexpr BackendOperationName([BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationName20BackendOperationNameERR20BackendOperationName)&&) noexcept = default

    - 

- constexpr [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationNameE) &operator=(const [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationNameE)&) noexcept = default

    - 

- constexpr [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationNameE) &operator=([BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20BackendOperationNameE)&&) noexcept = default

    - 

- inline constexpr BackendOperationName(std::string\_view packageName, std::string\_view name, std::string\_view target) noexcept

    - Construct a [BackendOperationName](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendOperationName) from its three name components.

- Parameters

    - - **packageName** – **[in]** Name of the op package that provides this operation.
- **name** – **[in]** Name of the operation within the op package.
- **target** – **[in]** Target platform for this operation entry. May be empty if the backend does not distinguish targets.

- inline const std::string\_view &getPackageName() const noexcept

    - Get the op package name for this operation.

See also

[QairtBackend\_OperationName\_getPackageName](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendOperationName_8h_1a5e07742e3d591b816b92e37e66859d10)

- Returns

    - Name of the op package that provides this operation.

- inline const std::string\_view &getName() const noexcept

    - Get the operation name within its op package.

See also

[QairtBackend\_OperationName\_getName](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendOperationName_8h_1a1b990a8fababaeed1fc77789f7d58d10)

- Returns

    - Name of the operation within its package.

- inline const std::string\_view getTarget() const noexcept

    - Get the target platform for this operation entry.

See also

[QairtBackend\_OperationName\_getTarget](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#QairtBackendOperationName_8h_1ab31c7b93744d3433e78a01d6501f5cd4)

- Returns

    - Target platform string, or an empty view if unused by this backend.

Private Members

- std::string\_view m\_packageName

    - The op package that provides this operation.

- std::string\_view m\_name

    - The name of the operation within its package.

- std::string\_view m\_target

    - The target platform for which this operation entry is registered.

- class ErrorReportingConfig : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[ErrorReportingConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt20ErrorReportingConfigE), [QairtErrorReporting\_Config\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv431QairtErrorReporting_Config_V1_t)&gt;

    - *#include &lt;QairtBackend.hpp&gt;*

Configuration object for backend error reporting behavior.

Controls how much detail is captured when errors occur and how much memory is reserved for error data. Obtained via Api::createBackend() or set on a [BackendConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#classqairt_1_1BackendConfiguration) before backend creation.

Public Functions

- ErrorReportingConfig() = default

    - 

- inline [ErrorReportingConfigLevel](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt25ErrorReportingConfigLevelE) getReportingLevel() const

    - Get the reporting verbosity level for this error reporting configuration.

See also

[QairtErrorReporting\_Config\_getReportingLevel](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#QairtErrorReportingConfig_8h_1a0f4a69ef8aed1b10624e296902b99133)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - The current reporting level.

- inline void setReportingLevel([ErrorReportingConfigLevel](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt25ErrorReportingConfigLevelE) level)

    - Set the reporting verbosity level for this error reporting configuration.

See also

[QairtErrorReporting\_Config\_setReportingLevel](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#QairtErrorReportingConfig_8h_1add08073226e14bcc47dca229c4d441fa)

- Parameters

    - **level** – **[in]** Desired reporting verbosity. Must be a valid enumerator.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid level.

- inline uint32\_t getStorageLimit() const

    - Get the memory storage limit for this error reporting configuration.

See also

[QairtErrorReporting\_Config\_getStorageLimit](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#QairtErrorReportingConfig_8h_1a4e6e11380fb6377ae59a8a41b89fcdce)

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Storage limit in kilobytes.

- inline void setStorageLimit(uint32\_t limit)

    - Set the memory storage limit for this error reporting configuration.

See also

[QairtErrorReporting\_Config\_setStorageLimit](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#QairtErrorReportingConfig_8h_1aba36fc9e8da49d30b5bb1f9bb5505aef)

- Parameters

    - **limit** – **[in]** Maximum memory reserved for error information, in kilobytes.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid limit.

Private Functions

- inline ErrorReportingConfig(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [ErrorReportingConfigLevel](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv4N5qairt25ErrorReportingConfigLevelE) level, uint32\_t storageLimit)

    - 

- inline explicit ErrorReportingConfig(const std::shared\_ptr&lt;ApiTable&gt; &apiTable)

    -

Friends

- *friend class* Api

- *friend class* ::qairt::ApiType

Last Published: Jun 04, 2026

[Previous Topic
QairtTensor](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtTensor.md) [Next Topic
QairtDevice](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtDevice.md)